Author: nwhitehorn
Date: Sun Feb 26 22:09:21 2012
New Revision: 232200
URL: http://svn.freebsd.org/changeset/base/232200

Log:
  Fix segfault if distfetch and distextract binaries are run standalone
  without the DISTRIBUTIONS environment variable set.
  
  PR:           bin/165492
  Submitted by: Fernando Apesteguia
  MFC after:    4 days

Modified:
  head/usr.sbin/bsdinstall/distextract/distextract.c
  head/usr.sbin/bsdinstall/distfetch/distfetch.c

Modified: head/usr.sbin/bsdinstall/distextract/distextract.c
==============================================================================
--- head/usr.sbin/bsdinstall/distextract/distextract.c  Sun Feb 26 21:24:27 
2012        (r232199)
+++ head/usr.sbin/bsdinstall/distextract/distextract.c  Sun Feb 26 22:09:21 
2012        (r232200)
@@ -38,9 +38,16 @@ static int extract_files(int nfiles, con
 int
 main(void)
 {
-       char *diststring = strdup(getenv("DISTRIBUTIONS"));
+       char *diststring;
        const char **dists;
        int i, retval, ndists = 0;
+
+       if (getenv("DISTRIBUTIONS") == NULL) {
+               fprintf(stderr, "DISTRIBUTIONS variable is not set\n");
+               return (1);
+       }
+
+       diststring = strdup(getenv("DISTRIBUTIONS"));
        for (i = 0; diststring[i] != 0; i++)
                if (isspace(diststring[i]) && !isspace(diststring[i+1]))
                        ndists++;

Modified: head/usr.sbin/bsdinstall/distfetch/distfetch.c
==============================================================================
--- head/usr.sbin/bsdinstall/distfetch/distfetch.c      Sun Feb 26 21:24:27 
2012        (r232199)
+++ head/usr.sbin/bsdinstall/distfetch/distfetch.c      Sun Feb 26 22:09:21 
2012        (r232200)
@@ -37,9 +37,16 @@ static int fetch_files(int nfiles, char 
 int
 main(void)
 {
-       char *diststring = strdup(getenv("DISTRIBUTIONS"));
+       char *diststring;
        char **urls;
        int i, nfetched, ndists = 0;
+
+       if (getenv("DISTRIBUTIONS") == NULL) {
+               fprintf(stderr, "DISTRIBUTIONS variable is not set\n");
+               return (1);
+       }
+
+       diststring = strdup(getenv("DISTRIBUTIONS"));
        for (i = 0; diststring[i] != 0; i++)
                if (isspace(diststring[i]) && !isspace(diststring[i+1]))
                        ndists++;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to