gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 198/220: netrc: free 'home' on error


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 198/220: netrc: free 'home' on error
Date: Thu, 12 Sep 2019 17:29:18 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit 158dcb9f86986bebdb39ecd44237f112c72d761c
Author: Daniel Stenberg <address@hidden>
AuthorDate: Tue Sep 3 13:46:36 2019 +0200

    netrc: free 'home' on error
    
    Follow-up to f9c7ba9096ec2
    
    Coverity CID 1453474
    
    Closes #4291
---
 lib/netrc.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/lib/netrc.c b/lib/netrc.c
index bceca53f2..c74065e81 100644
--- a/lib/netrc.c
+++ b/lib/netrc.c
@@ -218,8 +218,10 @@ int Curl_parsenetrc(const char *host,
   char *filealloc = NULL;
 
   if(!netrcfile) {
-    char *home = curl_getenv("HOME"); /* portable environment reader */
-    if(home) {
+    char *home = NULL;
+    char *homea = curl_getenv("HOME"); /* portable environment reader */
+    if(homea) {
+      home = homea;
 #if defined(HAVE_GETPWUID_R) && defined(HAVE_GETEUID)
     }
     else {
@@ -227,9 +229,7 @@ int Curl_parsenetrc(const char *host,
       char pwbuf[1024];
       if(!getpwuid_r(geteuid(), &pw, pwbuf, sizeof(pwbuf), &pw_res)
          && pw_res) {
-        home = strdup(pw.pw_dir);
-        if(!home)
-          return -1;
+        home = pw.pw_dir;
       }
 #elif defined(HAVE_GETPWUID) && defined(HAVE_GETEUID)
     }
@@ -247,8 +247,10 @@ int Curl_parsenetrc(const char *host,
                          memory) */
 
     filealloc = curl_maprintf("%s%s.netrc", home, DIR_CHAR);
-    if(!filealloc)
+    if(!filealloc) {
+      free(homea);
       return -1;
+    }
     retcode = parsenetrc(host, loginp, passwordp, login_changed,
                          password_changed, filealloc);
     free(filealloc);
@@ -256,13 +258,16 @@ int Curl_parsenetrc(const char *host,
     if(retcode == NETRC_FILE_MISSING) {
       /* fallback to the old-style "_netrc" file */
       filealloc = curl_maprintf("%s%s_netrc", home, DIR_CHAR);
-      if(!filealloc)
+      if(!filealloc) {
+        free(homea);
         return -1;
+      }
       retcode = parsenetrc(host, loginp, passwordp, login_changed,
                            password_changed, filealloc);
       free(filealloc);
     }
 #endif
+    free(homea);
   }
   else
     retcode = parsenetrc(host, loginp, passwordp, login_changed,

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]