Author: abroekhuis
Date: Thu Dec 15 10:09:25 2011
New Revision: 1214682

URL: http://svn.apache.org/viewvc?rev=1214682&view=rev
Log:
Fixed manifest allocation errors.

Modified:
    incubator/celix/trunk/framework/private/src/manifest.c

Modified: incubator/celix/trunk/framework/private/src/manifest.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/manifest.c?rev=1214682&r1=1214681&r2=1214682&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/manifest.c (original)
+++ incubator/celix/trunk/framework/private/src/manifest.c Thu Dec 15 10:09:25 
2011
@@ -103,8 +103,10 @@ celix_status_t manifest_read(char *filen
                                        char buf[newlen];
                                        strcpy(buf, lastline);
                                        strncat(buf, lbuf+1, len - 1);
+                                       buf[newlen] = '\0';
 
                                        if (fpeek(file) == ' ') {
+                                               lastline = realloc(lastline, 
strlen(buf) + 1);
                                                lastline = strcpy(lastline, 
buf);
                                                continue;
                                        }
@@ -192,18 +194,19 @@ celix_status_t manifest_readAttributes(M
                                return CELIX_FILE_IO_EXCEPTION;
                        }
                        lineContinued = true;
-                       int newlen = strlen(lastLine) + len - 1;
+                       int newlen = strlen(lastLine) + len;
                        char buf[newlen];
                        strcpy(buf, lastLine);
                        strncat(buf, lbuf+1, len - 1);
+                       buf[newlen] = '\0';
 
                        if (fpeek(file) == ' ') {
+                               lastLine = realloc(lastLine, strlen(buf) + 1);
                                lastLine = strcpy(lastLine, buf);
                                continue;
                        }
                        value = (char *) malloc(strlen(buf) + 1);
                        value = strcpy(value, buf);
-                       value[strlen(buf)] = '\0';
                        lastLine = NULL;
                } else {
                        while (lbuf[i++] != ':') {


Reply via email to