Commit edbe0d16 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

if HOME isn't set or too long, we attempt to lost the curlrc file from

current directory instead!
parent 4db8c8b1
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -1604,27 +1604,28 @@ 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;
      }
      free(home); /* we've used it, now free it */
    }
  }

  if(strcmp(filename,"-"))
    file = fopen(filename, "r");
@@ -1770,8 +1771,6 @@ static int parseconfig(char *filename,
    if(file != stdin)
      fclose(file);
  }
  if(home)
    free(home);
  return 0;
}