You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/07/25 16:28:55 UTC
svn commit: r1150720 -
/subversion/branches/gpg-agent-password-store/subversion/libsvn_auth_gpg_agent/gpg_agent.c
Author: stsp
Date: Mon Jul 25 14:28:55 2011
New Revision: 1150720
URL: http://svn.apache.org/viewvc?rev=1150720&view=rev
Log:
On the gpg-agent-password-store branch, ensure that the gpg-agent socket
is always closed.
* subversion/libsvn_auth_gpg_agent/gpg_agent.c
(password_get_gpg_agent): Close the socket SD in all error paths.
Modified:
subversion/branches/gpg-agent-password-store/subversion/libsvn_auth_gpg_agent/gpg_agent.c
Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_auth_gpg_agent/gpg_agent.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_auth_gpg_agent/gpg_agent.c?rev=1150720&r1=1150719&r2=1150720&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_auth_gpg_agent/gpg_agent.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_auth_gpg_agent/gpg_agent.c Mon Jul 25 14:28:55 2011
@@ -142,7 +142,10 @@ password_get_gpg_agent(const char **pass
}
if (strncmp(buffer, "OK", 2) != 0)
- return FALSE;
+ {
+ close(sd);
+ return FALSE;
+ }
/* Send TTY_NAME to the gpg-agent daemon. */
tty_name = getenv("GPG_TTY");
@@ -157,10 +160,16 @@ password_get_gpg_agent(const char **pass
}
if (strncmp(buffer, "OK", 2) != 0)
- return FALSE;
+ {
+ close(sd);
+ return FALSE;
+ }
}
else
- return FALSE;
+ {
+ close(sd);
+ return FALSE;
+ }
/* Send TTY_TYPE to the gpg-agent daemon. */
tty_type = getenv("TERM");
@@ -175,10 +184,16 @@ password_get_gpg_agent(const char **pass
}
if (strncmp(buffer, "OK", 2) != 0)
- return FALSE;
+ {
+ close(sd);
+ return FALSE;
+ }
}
else
- return FALSE;
+ {
+ close(sd);
+ return FALSE;
+ }
/* Create the CACHE_ID which will be generated based on REALMSTRING similar
to other password caching mechanisms. */
@@ -203,6 +218,8 @@ password_get_gpg_agent(const char **pass
return FALSE;
}
+ close(sd);
+
if (strncmp(buffer, "ERR", 3) == 0)
return FALSE;
@@ -215,7 +232,6 @@ password_get_gpg_agent(const char **pass
*password = p;
- close(sd);
return TRUE;
}