add updated ipkg conffiles patch by cdtdaddy
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 3 Jan 2008 17:07:02 +0000 (17:07 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 3 Jan 2008 17:07:02 +0000 (17:07 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10091 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/busybox/patches/523-conffiles_fix.patch

index 8206faf91beb5c68db79c5d919b6ce16f5d398cd..15ac083cdfc28fd4c9268570a91ceec9b62fe0f3 100644 (file)
@@ -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++;
+     }
+ }