From: Daniel Stenberg <daniel@haxx.se> Date: Wed, 14 Mar 2001 16:12:47 +0000 (+0000) Subject: hm, don't free the home dir and append the .netrc part properly X-Git-Tag: curl-7_7-beta5~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a564a54e215db69a74a02a37c3db88ae40f5a487;p=curl hm, don't free the home dir and append the .netrc part properly --- diff --git a/lib/netrc.c b/lib/netrc.c index f8f16058c..2911af53e 100644 --- a/lib/netrc.c +++ b/lib/netrc.c @@ -83,7 +83,7 @@ int Curl_parsenetrc(char *host, struct passwd *pw; pw= getpwuid(geteuid()); if (pw) - strncat(netrcbuffer, pw->pw_dir, 255); + home = pw->pw_dir; #else void *pw=NULL; #endif @@ -93,15 +93,16 @@ int Curl_parsenetrc(char *host, if(!home) { return -1; } + } - if(strlen(home)>(sizeof(netrcbuffer)-strlen(NETRC))) { + if(strlen(home)>(sizeof(netrcbuffer)-strlen(NETRC))) { + if(NULL==pw) free(home); - return -1; - } - - sprintf(netrcbuffer, "%s%s%s", home, DIR_CHAR, NETRC); + return -1; } + sprintf(netrcbuffer, "%s%s%s", home, DIR_CHAR, NETRC); + file = fopen(netrcbuffer, "r"); if(file) { char *tok; @@ -164,7 +165,8 @@ int Curl_parsenetrc(char *host, fclose(file); } - free(home); + if(NULL==pw) + free(home); return retcode; }