Author: nwhitehorn
Date: Sat Mar  3 02:23:09 2012
New Revision: 232433
URL: http://svn.freebsd.org/changeset/base/232433

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

Modified:
  stable/9/usr.sbin/bsdinstall/distextract/distextract.c
  stable/9/usr.sbin/bsdinstall/distfetch/distfetch.c
Directory Properties:
  stable/9/usr.sbin/bsdinstall/   (props changed)

Modified: stable/9/usr.sbin/bsdinstall/distextract/distextract.c
==============================================================================
--- stable/9/usr.sbin/bsdinstall/distextract/distextract.c      Sat Mar  3 
02:20:46 2012        (r232432)
+++ stable/9/usr.sbin/bsdinstall/distextract/distextract.c      Sat Mar  3 
02:23:09 2012        (r232433)
@@ -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: stable/9/usr.sbin/bsdinstall/distfetch/distfetch.c
==============================================================================
--- stable/9/usr.sbin/bsdinstall/distfetch/distfetch.c  Sat Mar  3 02:20:46 
2012        (r232432)
+++ stable/9/usr.sbin/bsdinstall/distfetch/distfetch.c  Sat Mar  3 02:23:09 
2012        (r232433)
@@ -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++;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to