summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-02-09 04:16:36 +0100
committerDan McGee <dan@archlinux.org>2011-02-11 17:23:43 +0100
commit06cbb516c35eb81220064878ff202c3107b12c99 (patch)
treeea0caedb4afbb01b3ad3ade7f140d55826433247
parent56721c12cec02366816130aafaa974667db59a93 (diff)
downloadpacman-06cbb516c35eb81220064878ff202c3107b12c99.tar.gz
pacman-06cbb516c35eb81220064878ff202c3107b12c99.tar.xz
Avoid a memmove by advancing value pointer
In packages, our description file contains: key = value is here type entries, and we passed "key " and " value is here" to our strtrim function, causing us to always memmove the value portion to remove the space. Since this is a throwaway buffer, do the advancing on our own before trimming to save the need to shift memory around; "value is here" will now be passed and strtrim will be responsible for trailing whitespace. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/be_package.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c
index 7e46c08e..38448b43 100644
--- a/lib/libalpm/be_package.c
+++ b/lib/libalpm/be_package.c
@@ -175,6 +175,7 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
newpkg->name ? newpkg->name : "error", linenum);
} else {
key = _alpm_strtrim(key);
+ while(*ptr == ' ') ptr++;
ptr = _alpm_strtrim(ptr);
if(strcmp(key, "pkgname") == 0) {
STRDUP(newpkg->name, ptr, RET_ERR(PM_ERR_MEMORY, -1));