summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2014-03-08 16:58:30 +1000
committerAllan McRae <allan@archlinux.org>2014-03-08 16:58:30 +1000
commitffdc2c5396903ec0dd2b7ab4623f7f7674827885 (patch)
tree1934e4c5234940b0694ef9f70ef71f0041d1f6d0
parentf3a280bc67c0f2e7b57f3772599f989b0df4d945 (diff)
downloadpacman-ffdc2c5396903ec0dd2b7ab4623f7f7674827885.tar.gz
pacman-ffdc2c5396903ec0dd2b7ab4623f7f7674827885.zip
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 <allan@archlinux.org>
-rw-r--r--lib/libalpm/be_local.c6
-rw-r--r--lib/libalpm/be_package.c8
-rw-r--r--lib/libalpm/pkghash.c5
-rw-r--r--lib/libalpm/sync.c3
4 files changed, 7 insertions, 15 deletions
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 {