diff options
author | Dan McGee <dan@archlinux.org> | 2012-04-29 20:14:10 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-04-29 20:14:10 -0500 |
commit | 52a9a5240ac8dc9eef1fc68c1bf4290b76fe09ae (patch) | |
tree | e37ae79bdf8c9b9dbf1d21864e292fdce96f81ab | |
parent | e0afd81d18fdc646bbf6d37a1627c0267176e167 (diff) | |
download | pacman-52a9a5240ac8dc9eef1fc68c1bf4290b76fe09ae.tar.xz |
Move short-lived realpath buffers to the stack
There is little reason here to grab 4K from the heap only to return it a
few lines later. Instead, just use the stack to hold the returned value
saving ourselves the malloc/free cycle.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/conflict.c | 3 | ||||
-rw-r--r-- | lib/libalpm/handle.c | 5 |
2 files changed, 2 insertions, 6 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index 85429029..5714932c 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -547,7 +547,7 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle, * consideration cannot itself be a link, as it might be unowned- path * components can be safely checked as all directories are "unowned". */ if(!resolved_conflict && dbpkg && !S_ISLNK(lsbuf.st_mode)) { - char *rpath = calloc(PATH_MAX, sizeof(char)); + char rpath[PATH_MAX]; if(realpath(path, rpath)) { const char *relative_rpath = rpath + rootlen; if(_alpm_filelist_contains(alpm_pkg_get_files(dbpkg), relative_rpath)) { @@ -556,7 +556,6 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle, resolved_conflict = 1; } } - free(rpath); } /* is the file unowned and in the backup list of the new package? */ diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 2db27fbf..816162bd 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -333,7 +333,7 @@ alpm_errno_t _alpm_set_directory_option(const char *value, char **storage, int must_exist) { struct stat st; - char *real = NULL; + char real[PATH_MAX]; const char *path; path = value; @@ -344,9 +344,7 @@ alpm_errno_t _alpm_set_directory_option(const char *value, if(stat(path, &st) == -1 || !S_ISDIR(st.st_mode)) { return ALPM_ERR_NOT_A_DIR; } - CALLOC(real, PATH_MAX, sizeof(char), return ALPM_ERR_MEMORY); if(!realpath(path, real)) { - free(real); return ALPM_ERR_NOT_A_DIR; } path = real; @@ -359,7 +357,6 @@ alpm_errno_t _alpm_set_directory_option(const char *value, if(!*storage) { return ALPM_ERR_MEMORY; } - free(real); return 0; } |