diff options
author | David Shaw <[email protected]> | 2006-01-22 21:40:20 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2006-01-22 21:40:20 +0000 |
commit | 4ff7d09040363aefc1f5ab7fe48dd5f34f084164 (patch) | |
tree | ec2e073993ee51d9cc932ab259f4f0a426f422a6 | |
parent | * configure.ac: Add define for EXEEXT so we can find keyserver helpers (diff) | |
download | gnupg-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/ChangeLog | 8 | ||||
-rw-r--r-- | g10/keyserver.c | 6 | ||||
-rw-r--r-- | g10/misc.c | 10 |
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 { |