aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2001-03-14 16:12:47 +0000
committerDaniel Stenberg <daniel@haxx.se>2001-03-14 16:12:47 +0000
commita564a54e215db69a74a02a37c3db88ae40f5a487 (patch)
treed64e56ac5ef6c3aaa43877898c0a040b0b2e148a /lib
parent92186dc3d3344353246e2e12f6e9730bd6178dd5 (diff)
hm, don't free the home dir and append the .netrc part properly
Diffstat (limited to 'lib')
-rw-r--r--lib/netrc.c16
1 files 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;
}