diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-06-05 12:06:41 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2010-06-05 12:33:54 +0300 |
commit | 7be853e63785276338a4c4d9e5be084f24114bed (patch) | |
tree | 3481293203a948897d7a10f9fb74f09a7c7d6286 /src/fetch.c | |
parent | 069c89898478b0273f7e6d0ea803d6151ee74ff7 (diff) | |
download | apk-tools-7be853e63785276338a4c4d9e5be084f24114bed.tar.gz apk-tools-7be853e63785276338a4c4d9e5be084f24114bed.tar.bz2 apk-tools-7be853e63785276338a4c4d9e5be084f24114bed.tar.xz apk-tools-7be853e63785276338a4c4d9e5be084f24114bed.zip |
all: rework how arrays work
Instead of having a null pointer, use a dummy array which just
says the array is empty. This helps in multiple places of the code
which would otherwise need explicitly need to check first if the
array exists. This has been cause of multiple seg.faults in the
past as the array check is easily omitted.
This also removes (or fixes) all existing checks accordingly.
Diffstat (limited to 'src/fetch.c')
-rw-r--r-- | src/fetch.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/fetch.c b/src/fetch.c index 67b3322..dc9bff2 100644 --- a/src/fetch.c +++ b/src/fetch.c @@ -205,7 +205,7 @@ static int fetch_main(void *ctx, struct apk_database *db, int argc, char **argv) } apk_state_unref(state); - } else if (dep.name->pkgs != NULL) { + } else { struct apk_package *pkg = NULL; for (j = 0; j < dep.name->pkgs->num; j++) @@ -215,13 +215,15 @@ static int fetch_main(void *ctx, struct apk_database *db, int argc, char **argv) == APK_VERSION_GREATER) pkg = dep.name->pkgs->item[j]; + if (pkg == NULL) { + apk_message("Unable to get '%s'", dep.name->name); + r = -1; + break; + } + r = fetch_package(fctx, db, pkg); if (r != 0) goto err; - } else { - apk_message("Unable to get '%s'", dep.name->name); - r = -1; - break; } } |