diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-01-03 17:07:02 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-01-03 17:07:02 +0000 | 
| commit | a806f32c7a88e4409bf750982d39d350d41ab40f (patch) | |
| tree | db91b92f3d3bae24ea16a10c3c3c55ab2be06c03 | |
| parent | 5d9c91b9de244e7e6d2137b0dd86f876008cb355 (diff) | |
add updated ipkg conffiles patch by cdtdaddy
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10091 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rw-r--r-- | package/busybox/patches/523-conffiles_fix.patch | 59 | 
1 files changed, 53 insertions, 6 deletions
| diff --git a/package/busybox/patches/523-conffiles_fix.patch b/package/busybox/patches/523-conffiles_fix.patch index 8206faf91..15ac083cd 100644 --- a/package/busybox/patches/523-conffiles_fix.patch +++ b/package/busybox/patches/523-conffiles_fix.patch @@ -1,21 +1,68 @@  Index: busybox-1.8.2/archival/libipkg/pkg.c  =================================================================== ---- busybox-1.8.2.orig/archival/libipkg/pkg.c	2008-01-02 21:53:12.616453611 +0100 -+++ busybox-1.8.2/archival/libipkg/pkg.c	2008-01-02 21:54:41.462489150 +0100 -@@ -587,13 +587,14 @@ +--- busybox-1.8.2.orig/archival/libipkg/pkg.c	2008-01-03 17:25:55.000000000 +0100 ++++ busybox-1.8.2/archival/libipkg/pkg.c	2008-01-03 17:33:57.000000000 +0100 +@@ -575,25 +575,28 @@ + 		    return temp; + 	       } +  +-               len = 14 ; ++               len = sizeof("Conffiles:") ; + 	       for (iter = pkg->conffiles.head; iter; iter = iter->next) { + 		    if (iter->data->name && iter->data->value) { +-                       len = len + (strlen(iter->data->name)+strlen(iter->data->value)+5); +-		    } ++                        /* " <filename> <md5hash>"  */ ++		        len += 1+strlen(iter->data->name)+1+strlen(iter->data->value);  ++                    } + 	       } ++               len +=2; /* "\n\0" */ +                temp = (char *)realloc(temp,len); +                if ( temp == NULL ){ + 	          fprintf(stderr, "%s: out of memory\n", __FUNCTION__);   	          return NULL;                  }                  temp[0]='\0';  -               strncpy(temp, "Conffiles:\n", 12); -+               strncpy(temp, "Conffiles: ", 12); ++	       strcpy(temp, "Conffiles:");   	       for (iter = pkg->conffiles.head; iter; iter = iter->next) {   		    if (iter->data->name && iter->data->value) {  -                         snprintf(line_str, LINE_LEN, "%s %s\n", iter->data->name, iter->data->value); -+                         snprintf(line_str, LINE_LEN, "%s %s", iter->data->name, iter->data->value); ++                         snprintf(line_str, LINE_LEN, " %s %s", iter->data->name, iter->data->value);                            strncat(temp, line_str, strlen(line_str));              		    }   	       } -+	       strcat(temp, "\n"); ++               strcat(temp, "\n");   	  } else if (strcasecmp(field, "Conflicts") == 0) {   	       int i; +Index: busybox-1.8.2/archival/libipkg/pkg_parse.c +=================================================================== +--- busybox-1.8.2.orig/archival/libipkg/pkg_parse.c	2008-01-03 17:25:55.000000000 +0100 ++++ busybox-1.8.2/archival/libipkg/pkg_parse.c	2008-01-03 17:30:14.000000000 +0100 + -85,20 +85,17 @@ + { +     char file_name[1048], md5sum[1048];  /* please tell me there aren't any longer that 1k */ +  +-    if(!strncmp(raw, "Conffiles:", 10)) ++    if(!strncmp(raw, "Conffiles:",10)) + 	raw += strlen("Conffiles:"); +  ++    while(*raw && isspace(*raw)) raw++; +     while(*raw && (sscanf(raw, "%s%s", file_name, md5sum) == 2)){ + 	conffile_list_append(&pkg->conffiles, file_name, md5sum); + 	/*	fprintf(stderr, "%s %s ", file_name, md5sum);*/ +-	while (*raw && isspace(*raw)) { +-	    raw++; +-	} +-	raw += strlen(file_name); +-	while (*raw && isspace(*raw)) { +-	    raw++; +-	} +-	raw += strlen(md5sum); ++        raw += strlen(file_name); ++	while(*raw && isspace(*raw)) raw++; ++        raw += strlen(md5sum); ++        while(*raw && isspace(*raw)) raw++; +     } + } | 
