From a564a54e215db69a74a02a37c3db88ae40f5a487 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 14 Mar 2001 16:12:47 +0000 Subject: hm, don't free the home dir and append the .netrc part properly --- lib/netrc.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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; } -- cgit v1.2.3