]> git.ipfire.org Git - pakfire.git/commitdiff
repo: Fix return codes when reading SOLV data
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 30 Jan 2025 11:04:06 +0000 (11:04 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 30 Jan 2025 11:04:06 +0000 (11:04 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/repo.c

index 477acc252071657046861d20a8802b8fadcb385e..2554b3c0c5f91b707bce6f4462659263ba577553 100644 (file)
@@ -1450,15 +1450,17 @@ ERROR:
 }
 
 int pakfire_repo_read_solv(struct pakfire_repo* repo, FILE *f, int flags) {
+       int r;
+
        // Automatically detect compression
        f = pakfire_xfopen(f, "r");
-       if (!f) {
-               errno = ENOTSUP;
-               return 1;
-       }
+       if (!f)
+               return -errno;
+
+       // Import SOLV data
+       r = repo_add_solv(repo->repo, f, flags);
 
-       int ret = repo_add_solv(repo->repo, f, flags);
-       switch (ret) {
+       switch (r) {
                // Everything OK
                case 0:
                        break;
@@ -1467,21 +1469,18 @@ int pakfire_repo_read_solv(struct pakfire_repo* repo, FILE *f, int flags) {
                case 1:
                // Unsupported version
                case 2:
-                       errno = ENOTSUP;
-                       return 1;
+                       return -ENOTSUP;
 
                // End of file
                case 3:
-                       errno = EIO;
-                       return 1;
+                       return -EIO;
 
                // Corrupted
                case 4:
                case 5:
                case 6:
                default:
-                       errno = EBADMSG;
-                       return 1;
+                       return -EBADMSG;
        }
 
        pakfire_repo_has_changed(repo);