[pacman-dev] CVS update of pacman-lib/lib/libalpm (md5driver.c server.c sha1.c)
Date: Monday, March 5, 2007 @ 23:22:04 Author: aaron Path: /home/cvs-pacman/pacman-lib/lib/libalpm Modified: md5driver.c (1.7 -> 1.8) server.c (1.24 -> 1.25) sha1.c (1.6 -> 1.7) * Fix the double package name URL when using XferCommand * Fixed valgrind yelling about the sprintfs in md5/sha1 routines -------------+ md5driver.c | 6 ++++-- server.c | 12 +++++------- sha1.c | 4 +++- 3 files changed, 12 insertions(+), 10 deletions(-) Index: pacman-lib/lib/libalpm/md5driver.c diff -u pacman-lib/lib/libalpm/md5driver.c:1.7 pacman-lib/lib/libalpm/md5driver.c:1.8 --- pacman-lib/lib/libalpm/md5driver.c:1.7 Mon Mar 5 17:13:34 2007 +++ pacman-lib/lib/libalpm/md5driver.c Mon Mar 5 23:22:03 2007 @@ -47,6 +47,7 @@ FILE *file; MD_CTX context; int len; + char hex[3]; unsigned char buffer[1024], digest[16]; ALPM_LOG_FUNC; @@ -66,10 +67,11 @@ ret = calloc(33, sizeof(char)); for(i = 0; i < 16; i++) { - sprintf(ret+(i*2), "%02x", digest[i]); + snprintf(hex, 3, "%02x", digest[i]); + strncat(ret, hex, 2); } - _alpm_log(PM_LOG_DEBUG, _("sha1(%s) = %s"), filename, ret); + _alpm_log(PM_LOG_DEBUG, _("md5(%s) = %s"), filename, ret); return(ret); } return(NULL); Index: pacman-lib/lib/libalpm/server.c diff -u pacman-lib/lib/libalpm/server.c:1.24 pacman-lib/lib/libalpm/server.c:1.25 --- pacman-lib/lib/libalpm/server.c:1.24 Mon Mar 5 20:21:41 2007 +++ pacman-lib/lib/libalpm/server.c Mon Mar 5 23:22:03 2007 @@ -319,8 +319,10 @@ char parsedCmd[PATH_MAX] = ""; char url[PATH_MAX]; char cwd[PATH_MAX]; + /* build the full download url */ - snprintf(url, PATH_MAX, "%s://%s%s/%s", fileurl->scheme, fileurl->host, fileurl->doc, fn); + snprintf(url, PATH_MAX, "%s://%s%s", fileurl->scheme, fileurl->host, fileurl->doc); + /* replace all occurrences of %o with fn.part */ strncpy(origCmd, handle->xfercommand, sizeof(origCmd)); ptr1 = origCmd; @@ -328,8 +330,7 @@ usepart = 1; ptr2[0] = '\0'; strcat(parsedCmd, ptr1); - strcat(parsedCmd, fn); - strcat(parsedCmd, ".part"); + strcat(parsedCmd, output); ptr1 = ptr2 + 2; } strcat(parsedCmd, ptr1); @@ -363,10 +364,7 @@ /* download was successful */ complete = alpm_list_add(complete, fn); if(usepart) { - char fnpart[PATH_MAX]; - /* rename "output.part" file to "output" file */ - snprintf(fnpart, PATH_MAX, "%s.part", fn); - rename(fnpart, fn); + rename(output, realfile); } } chdir(cwd); Index: pacman-lib/lib/libalpm/sha1.c diff -u pacman-lib/lib/libalpm/sha1.c:1.6 pacman-lib/lib/libalpm/sha1.c:1.7 --- pacman-lib/lib/libalpm/sha1.c:1.6 Mon Mar 5 17:13:34 2007 +++ pacman-lib/lib/libalpm/sha1.c Mon Mar 5 23:22:03 2007 @@ -387,6 +387,7 @@ FILE *file; struct sha_ctx context; int len, i; + char hex[3]; unsigned char buffer[1024], digest[20]; char *ret; @@ -405,7 +406,8 @@ ret = (char*)malloc(41); ret[0] = '\0'; for(i = 0; i < 20; i++) { - sprintf(ret+(i*2), "%02x", digest[i]); + snprintf(hex, 3, "%02x", digest[i]); + strncat(ret, hex, 2); } _alpm_log(PM_LOG_DEBUG, _("sha1(%s) = %s"), filename, ret); return(ret);
participants (1)
-
Aaron Griffin