if HOME isn't set or too long, we attempt to lost the curlrc file from
authorDaniel Stenberg <daniel@haxx.se>
Fri, 5 Apr 2002 15:04:04 +0000 (15:04 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 5 Apr 2002 15:04:04 +0000 (15:04 +0000)
current directory instead!

src/main.c

index 2c205ffdd75fa14e2a816d6cebed36a77e5a68f4..338d52b7d57fdb0e765dab1ed8b48627db4b0ad6 100644 (file)
@@ -1604,26 +1604,27 @@ static int parseconfig(char *filename,
 {
   int res;
   FILE *file;
-  char filebuffer[256];
+  char filebuffer[512];
   bool usedarg;
-  char *home=NULL;
+  char *home;
   
   if(!filename || !*filename) {
     /* NULL or no file name attempts to load .curlrc from the homedir! */
 
 #define CURLRC DOT_CHAR "curlrc"
 
+    filename = CURLRC;          /* sensible default */
     home = curl_getenv("HOME"); /* portable environment reader */
-    if(!home)
-      return 0;
-    if(strlen(home)>(sizeof(filebuffer)-strlen(CURLRC))) {
-      free(home);
-      return 0;
-    }
+    if(home) {
+      if(strlen(home)<(sizeof(filebuffer)-strlen(CURLRC))) {
 
-    sprintf(filebuffer, "%s%s%s", home, DIR_CHAR, CURLRC);
+        snprintf(filebuffer, sizeof(filebuffer),
+                 "%s%s%s", home, DIR_CHAR, CURLRC);
 
-    filename = filebuffer;
+        filename = filebuffer;
+      }
+      free(home); /* we've used it, now free it */
+    }
   }
 
   if(strcmp(filename,"-"))
@@ -1770,8 +1771,6 @@ static int parseconfig(char *filename,
     if(file != stdin)
       fclose(file);
   }
-  if(home)
-    free(home);
   return 0;
 }