Fix the next errors in the api:

[./lib/libpacman/md5driver.c:67]: (error) Overlapping data buffer ret
[./lib/libpacman/sha1.c:409]: (error) Overlapping data buffer ret
---
 lib/libpacman/md5driver.c |    9 +++++----
 lib/libpacman/sha1.c      |    6 ++++--
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/lib/libpacman/md5driver.c b/lib/libpacman/md5driver.c
index 261f83d..cd54f31 100644
--- a/lib/libpacman/md5driver.c
+++ b/lib/libpacman/md5driver.c
@@ -42,14 +42,14 @@ char* _pacman_MDFile(char *filename)
 {
        FILE *file;
        MD_CTX context;
-       int len;
+       int len = 0;
        unsigned char buffer[1024], digest[16];
 
        if((file = fopen(filename, "rb")) == NULL) {
                printf (_("%s can't be opened\n"), filename);
        } else {
                char *ret;
-               int i;
+               int i, x;
 
                MDInit(&context);
                while((len = fread(buffer, 1, 1024, file))) {
@@ -64,9 +64,10 @@ char* _pacman_MDFile(char *filename)
                ret = (char*)malloc(33);
                ret[0] = '\0';
                for(i = 0; i < 16; i++) {
-                       sprintf(ret, "%s%02x", ret, digest[i]);
+                       x = sprintf(ret + len, "%02x", digest[i]);
+                       if (x >= 0) { len+= x; }
                }
-
+               ret[32] = '\0';
                return(ret);
        }
        return(NULL);
diff --git a/lib/libpacman/sha1.c b/lib/libpacman/sha1.c
index ac6d96e..087c3ae 100644
--- a/lib/libpacman/sha1.c
+++ b/lib/libpacman/sha1.c
@@ -387,7 +387,7 @@ documentation and/or software.
 char* _pacman_SHAFile(char *filename) {
     FILE *file;
     struct sha_ctx context;
-    int len, i;
+    int len = 0, i, x;
     unsigned char buffer[1024], digest[20];
     char *ret;
     
@@ -406,8 +406,10 @@ char* _pacman_SHAFile(char *filename) {
        ret = (char*)malloc(41);
        ret[0] = '\0';
        for(i = 0; i < 20; i++) {
-           sprintf(ret, "%s%02x", ret, digest[i]);
+           x = sprintf(ret + len, "%02x", digest[i]);
+           if (x >= 0) { len += x; }
        }
+       ret[40] = '\0';
        return(ret);
     }
 
-- 
1.6.4

_______________________________________________
Frugalware-devel mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-devel

Reply via email to