PERFORCE change 123409 for review

Garrett Cooper gcooper at FreeBSD.org
Thu Jul 12 23:42:54 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=123409

Change 123409 by gcooper at optimus-revised_pkgtools on 2007/07/12 23:42:51

	-Fixed bug (was incrementing one too many in file read).
	-Removed old read_plist(..) function.
	-Swapped around some checks in plist_cmd(..).
	-Removed some debug statements.

Affected files ...

.. //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/plist.c#6 edit

Differences ...

==== //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/plist.c#6 (text+ko) ====

@@ -375,9 +375,6 @@
 
     }
 
-    else if (!strcmp(cmd, "srcdir"))
-	return PLIST_SRC;
-
     else if (*cmd == 'm') {
 
 	if(!strcmp(cmd+1, "ode"))
@@ -396,6 +393,8 @@
 
     }
 
+    else if (!strcmp(cmd, "srcdir"))
+	return PLIST_SRC;
     else if (!strcmp(cmd, "group"))
 	return PLIST_CHGRP;
     else if (!strcmp(cmd, "pkgdep"))
@@ -423,81 +422,76 @@
 
     int cmd;
 
-    int i = 0;
+    unsigned int i = 0;
 
     pkg->fmtver_maj = 1;
-    pkg->fmtver_mnr = 0;
+    pkg->fmtver_mnr = 2;
     pkg->origin = NULL;
 
-    if(fstat( fileno(fp), &contents_stat )) {
+    if(fstat( fileno(fp), &contents_stat ))
 	err(-1, "Could not fstat +CONTENTS file");
-    }
 
+    /* Empty file -- don't attempt to process */
     assert(contents_stat.st_size != 0);
 
-    plines = (char*) calloc(1, contents_stat.st_size);
+    plines = (char*) malloc(contents_stat.st_size);
 
-    for(i = 0; !feof(fp) && i <= contents_stat.st_size; i++)
+    for(i = 0; !feof(fp) && i < contents_stat.st_size; i++)
 	*(plines+i) = fgetc(fp);
 
 //    printf("+CONTENTS DUMP: %s\n", plines);
 
     /* Avoid strangely crafted files with zero-length, but non-zero size */
-    assert(i != 0);
+    assert(0 != i);
 
+    /* Just in case file doesn't have EOF */
     *(plines+i) = '\0';
 
     pline = strtok(plines, "\n");
 
-    if(trim_end_whitespace(pline)) {
+    if(0 == trim_end_whitespace(pline))
+	errx(-1, "Length of first line was 0. This shouldn't happen");
 
-	if(*pline != CMD_CHAR) {
-	    cmd = PLIST_FILE;
-	}
+    cp = pline;
 
-	else {
+    if(*pline != CMD_CHAR)
+	cmd = PLIST_FILE;
+    else {
 
-	    int major, minor;
+	int major, minor;
 
-	    pline++;
+	cmd = plist_cmd(pline+1, &cp);
 
-	    cp = pline;
-
-	    cmd = plist_cmd(pline, &cp);
-
-	    if (cmd != PLIST_COMMENT) {
-		errx(-1, "First line of +CONTENTS file was invalid (should be a "
+	if (cmd != PLIST_COMMENT) {
+	    errx(-1, "First line of +CONTENTS file was invalid (should be a "
 		    "package version signature)!\nLine was: %s", pline);
-	    }
+	}
 
-	    if (cmd == PLIST_COMMENT &&
-		sscanf(cp, "PKG_FORMAT_REVISION:%d.%d\n", &major, &minor) == 2) {
+	if (cmd == PLIST_COMMENT &&
+	    sscanf(cp, "PKG_FORMAT_REVISION:%d.%d\n", &major, &minor) == 2) {
 
-		pkg->fmtver_maj = major;
-	        pkg->fmtver_mnr = minor;
+	    pkg->fmtver_maj = major;
+	    pkg->fmtver_mnr = minor;
 
-		/* 
-		 * If the version is greater than the version major.minor, we
-		 * have a compatibility problem..
-		 */
-	    	if (0 < verscmp(pkg, PLIST_FMT_VER_MAJOR, PLIST_FMT_VER_MINOR)) {
-		    warnx("plist format revision (%d.%d) is higher than supported"
-			    "(%d.%d)", pkg->fmtver_maj, pkg->fmtver_mnr,
-			    PLIST_FMT_VER_MAJOR, PLIST_FMT_VER_MINOR);
+	    /* 
+	     * If the version is greater than the version major.minor, we
+	     * have a compatibility problem..
+	     */
+	    if (0 < verscmp(pkg, PLIST_FMT_VER_MAJOR, PLIST_FMT_VER_MINOR)) {
+		warnx("plist format revision (%d.%d) is higher than supported"
+		    "(%d.%d)", pkg->fmtver_maj, pkg->fmtver_mnr,
+		    PLIST_FMT_VER_MAJOR, PLIST_FMT_VER_MINOR);
 
-		    if (pkg->fmtver_maj > PLIST_FMT_VER_MAJOR) {
-			cleanup(0);
-			exit(2);
-	            }
-
-		}
+		if (pkg->fmtver_maj > PLIST_FMT_VER_MAJOR) {
+		    cleanup(0);
+		    exit(2);
+	        }
 
 	    }
 	
 	}
 
-    } else
-	errx(-1, "Length of first line was 0. This shouldn't happen");
+    }
 
     add_plist(pkg, cmd, cp);
 
@@ -518,7 +512,9 @@
 		} else if (*cp == '\0')
 	            cp = NULL;
 
-	    } else
+	    } else if (*cp == '\0')
+		cp = NULL;
+	    else
 		cmd = PLIST_FILE;
 
 	    add_plist(pkg, cmd, cp);
@@ -542,110 +538,6 @@
     return len;
 }
 
-/* Read a packing list from a file */
-void
-read_plist_old_np(Package *pkg, FILE *fp)
-{
-
-#if BUFFER_TRY
-
-#define MAX_BUFFER_LINES 20
-
-    char pline[MAX_BUFFER_LINES][FILENAME_MAX];
-
-    int i = -1;
-    int j = -1;
-
-#else
-    char pline[FILENAME_MAX];
-#endif
-
-    char *cp;
-    int cmd, len, major, minor;
-
-    pkg->fmtver_maj = 1;
-    pkg->fmtver_mnr = 0;
-    pkg->origin = NULL;
-
-#if BUFFER_TRY
-
-    while (i) {
-
-	for(i = 0; i < MAX_BUFFER_LINES && fgets(pline[i], FILENAME_MAX, fp); i++) ; 
-
-	if(!i)
-	    break;
-
-	for(j = 0; j < i; j++) {
-
-	    len = strlen(pline[j]);
-
-	    while(len && isspace(pline[j][len-1]))
-		pline[j][--len] = '\0';
-	    if(!len)
-		continue;
-	    cp = pline[j];
-
-#else
-
-    while (fgets(pline, FILENAME_MAX, fp)) {
-	len = strlen(pline);
-
-	while (len && isspace(pline[len - 1]))
-	    pline[--len] = '\0';
-	if (!len)
-	    continue;
-	cp = pline;
-
-#endif
-
-	if (cp[0] != CMD_CHAR) {
-	    cmd = PLIST_FILE;
-	    goto bottom;
-	}
-
-#if BUFFER_TRY
-	    cmd = plist_cmd(pline[j] + 1, &cp);
-#else
-	cmd = plist_cmd(pline + 1, &cp);
-#endif
-
-	if (cmd == FAIL) {
-	    warnx("%s: unknown command '%s' (package tools out of date?)",
-		__func__, cp);
-	    goto bottom;
-	}
-	if (*cp == '\0') {
-	    cp = NULL;
-	    goto bottom;
-	}
-	if (cmd == PLIST_COMMENT && sscanf(cp, "PKG_FORMAT_REVISION:%d.%d\n",
-					   &major, &minor) == 2) {
-	    pkg->fmtver_maj = major;
-	    pkg->fmtver_mnr = minor;
-	    if (verscmp(pkg, PLIST_FMT_VER_MAJOR, PLIST_FMT_VER_MINOR) <= 0)
-		goto bottom;
-
-	    warnx("plist format revision (%d.%d) is higher than supported"
-		  "(%d.%d)", pkg->fmtver_maj, pkg->fmtver_mnr,
-		  PLIST_FMT_VER_MAJOR, PLIST_FMT_VER_MINOR);
-	    if (pkg->fmtver_maj > PLIST_FMT_VER_MAJOR) {
-		cleanup(0);
-		exit(2);
-	    }
-	}
-
-bottom:
-	add_plist(pkg, cmd, cp);
-#if BUFFER_TRY
-
-        }
-#endif
-
-    }
-
-}
-
 void
 write_plist(Package *pkg, FILE *fp)
 {


More information about the p4-projects mailing list