aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2006-01-22 21:40:20 +0000
committerDavid Shaw <[email protected]>2006-01-22 21:40:20 +0000
commit4ff7d09040363aefc1f5ab7fe48dd5f34f084164 (patch)
treeec2e073993ee51d9cc932ab259f4f0a426f422a6
parent* configure.ac: Add define for EXEEXT so we can find keyserver helpers (diff)
downloadgnupg-4ff7d09040363aefc1f5ab7fe48dd5f34f084164.tar.gz
gnupg-4ff7d09040363aefc1f5ab7fe48dd5f34f084164.zip
* keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
keyserver helpers on systems that use extensions. * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing with drive letter systems.
-rw-r--r--g10/ChangeLog8
-rw-r--r--g10/keyserver.c6
-rw-r--r--g10/misc.c10
3 files changed, 21 insertions, 3 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 4187c1a75..4af244c7a 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,11 @@
+2006-01-22 David Shaw <[email protected]>
+
+ * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
+ keyserver helpers on systems that use extensions.
+
+ * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
+ with drive letter systems.
+
2006-01-17 David Shaw <[email protected]>
* keydb.h, passphrase.c (next_to_last_passphrase): New. "Touch" a
diff --git a/g10/keyserver.c b/g10/keyserver.c
index 4376daeeb..75f45b654 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -946,7 +946,7 @@ keyserver_spawn(enum ks_action action,STRLIST list,KEYDB_SEARCH_DESC *desc,
/* If exec-path was set, and DISABLE_KEYSERVER_PATH is
undefined, then don't specify a full path to gpgkeys_foo, so
that the PATH can work. */
- command=xmalloc(GPGKEYS_PREFIX_LEN+strlen(scheme)+3+1);
+ command=xmalloc(GPGKEYS_PREFIX_LEN+strlen(scheme)+3+strlen(EXEEXT)+1);
command[0]='\0';
}
else
@@ -954,7 +954,7 @@ keyserver_spawn(enum ks_action action,STRLIST list,KEYDB_SEARCH_DESC *desc,
{
/* Specify a full path to gpgkeys_foo. */
command=xmalloc(strlen(libexecdir)+strlen(DIRSEP_S)+
- GPGKEYS_PREFIX_LEN+strlen(scheme)+3+1);
+ GPGKEYS_PREFIX_LEN+strlen(scheme)+3+strlen(EXEEXT)+1);
strcpy(command,libexecdir);
strcat(command,DIRSEP_S);
}
@@ -967,6 +967,8 @@ keyserver_spawn(enum ks_action action,STRLIST list,KEYDB_SEARCH_DESC *desc,
if(keyserver->flags.direct_uri)
strcat(command,"uri");
+ strcat(command,EXEEXT);
+
#ifdef GPGKEYS_CURL
if(!curl_cant_handle(scheme,keyserver->flags.direct_uri)
&& path_access(command,X_OK)!=0)
diff --git a/g10/misc.c b/g10/misc.c
index c5b97740c..b0fe82560 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -1251,7 +1251,15 @@ path_access(const char *file,int mode)
envpath=getenv("PATH");
- if(file[0]=='/' || !envpath)
+ if(!envpath
+#ifdef HAVE_DRIVE_LETTERS
+ || (((file[0]>='A' && file[0]<='Z')
+ || (file[0]>='a' && file[0]<='z'))
+ && file[1]==':')
+#else
+ || file[0]=='/'
+#endif
+ )
return access(file,mode);
else
{