common: Fix connecting to the agent.
authorJustus Winter <justus@g10code.com>
Mon, 27 Mar 2017 14:14:20 +0000 (16:14 +0200)
committerJustus Winter <justus@g10code.com>
Mon, 27 Mar 2017 14:21:02 +0000 (16:21 +0200)
* common/homedir.c (_gnupg_socketdir_internal): Fix error handling.
--

Prior to 26086b36 the non-existance of the socket directory was
considered an error if a non-default home directory is used.  Since
26086b36 we now create the directory on demand, but the function still
returned the fallback path.  This made the agent bind the socket in
the socket directory, and the client trying to connect to the socket
in the home directory.

Fixes-commit: 26086b362ff47d21b1abefaf674a6464bf0a8921
Signed-off-by: Justus Winter <justus@g10code.com>
common/homedir.c

index ee4438c..fce6d44 100644 (file)
@@ -586,6 +586,8 @@ _gnupg_socketdir_internal (int skip_checks, unsigned *r_info)
                   else
                     *r_info |= 64; /* Subdir does not exist.  */
                 }
+              else
+                goto leave; /* Success!  */
             }
           else
             *r_info |= 64; /* Subdir does not exist.  */