From ffdc2c5396903ec0dd2b7ab4623f7f7674827885 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sat, 8 Mar 2014 16:58:30 +1000 Subject: Use MALLOC throughtout libalpm Use MALLOC instead of malloc for safety in libalpm. Some changes are pure refactoring, but for others this provides a success check for memory allocation. Signed-off-by: Allan McRae --- lib/libalpm/be_local.c | 6 +----- lib/libalpm/be_package.c | 8 +++----- lib/libalpm/pkghash.c | 5 +---- lib/libalpm/sync.c | 3 ++- 4 files changed, 7 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 5474995e..9a9bdef6 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -743,11 +743,7 @@ static int local_db_read(alpm_pkg_t *info, alpm_dbinfrq_t inforeq) /* since we know the length of the file string already, * we can do malloc + memcpy rather than strdup */ len += 1; - files[files_count].name = malloc(len); - if(files[files_count].name == NULL) { - _alpm_alloc_fail(len); - goto error; - } + MALLOC(files[files_count].name, len, goto error); memcpy(files[files_count].name, line, len); files_count++; } diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c index 3c354846..dc2e0720 100644 --- a/lib/libalpm/be_package.c +++ b/lib/libalpm/be_package.c @@ -39,6 +39,7 @@ #include "package.h" #include "deps.h" #include "filelist.h" +#include "util.h" struct package_changelog { struct archive *archive; @@ -404,11 +405,8 @@ static int add_entry_to_files_list(alpm_pkg_t *pkg, size_t *files_size, * Other code relies on it to detect directories so add it here.*/ if(type == AE_IFDIR && path[pathlen - 1] != '/') { /* 2 = 1 for / + 1 for \0 */ - char *newpath = malloc(pathlen + 2); - if (!newpath) { - _alpm_alloc_fail(pathlen + 2); - return -1; - } + char *newpath; + MALLOC(newpath, pathlen + 2, return -1); strcpy(newpath, path); newpath[pathlen] = '/'; newpath[pathlen + 1] = '\0'; diff --git a/lib/libalpm/pkghash.c b/lib/libalpm/pkghash.c index 2f682784..a740233d 100644 --- a/lib/libalpm/pkghash.c +++ b/lib/libalpm/pkghash.c @@ -172,10 +172,7 @@ static alpm_pkghash_t *pkghash_add_pkg(alpm_pkghash_t *hash, alpm_pkg_t *pkg, position = get_hash_position(pkg->name_hash, hash); - ptr = malloc(sizeof(alpm_list_t)); - if(ptr == NULL) { - return hash; - } + MALLOC(ptr, sizeof(alpm_list_t), return hash); ptr->data = pkg; ptr->prev = ptr; diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 7e40d986..a025b68a 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -1135,8 +1135,9 @@ static int check_validity(alpm_handle_t *handle, if(_alpm_pkg_validate_internal(handle, v.path, v.pkg, v.level, &v.siglist, &v.validation) == -1) { + struct validity *invalid; v.error = handle->pm_errno; - struct validity *invalid = malloc(sizeof(struct validity)); + MALLOC(invalid, sizeof(struct validity), return -1); memcpy(invalid, &v, sizeof(struct validity)); errors = alpm_list_add(errors, invalid); } else { -- cgit v1.2.3-54-g00ecf