diff options
author | David Shaw <[email protected]> | 2002-11-04 13:59:08 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2002-11-04 13:59:08 +0000 |
commit | f7b357ebfe602cd894d745c28548d53eaf9cbbfa (patch) | |
tree | 0edcddeb10aa92a8cf9f42fac4190454edfc1578 /keyserver/gpgkeys_ldap.c | |
parent | * options.h, g10.c (main): Add --trust-model option. Current models are (diff) | |
download | gnupg-f7b357ebfe602cd894d745c28548d53eaf9cbbfa.tar.gz gnupg-f7b357ebfe602cd894d745c28548d53eaf9cbbfa.zip |
* gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly handle an
input file that does not include any key data at all.
Diffstat (limited to 'keyserver/gpgkeys_ldap.c')
-rw-r--r-- | keyserver/gpgkeys_ldap.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c index 21c883005..d215dfe7e 100644 --- a/keyserver/gpgkeys_ldap.c +++ b/keyserver/gpgkeys_ldap.c @@ -109,7 +109,7 @@ ldap_to_gpg_err(LDAP *ld) int send_key(int *eof) { - int err,gotit=0,keysize=1,ret=KEYSERVER_INTERNAL_ERROR; + int err,begin=0,end=0,keysize=1,ret=KEYSERVER_INTERNAL_ERROR; char *dn=NULL,line[MAX_LINE],*key[2]={NULL,NULL}; char keyid[17]; LDAPMod mod, *attrs[2]; @@ -147,11 +147,11 @@ send_key(int *eof) while(fgets(line,MAX_LINE,input)!=NULL) if(sscanf(line,"KEY %16s BEGIN\n",keyid)==1) { - gotit=1; + begin=1; break; } - if(!gotit) + if(!begin) { /* i.e. eof before the KEY BEGIN was found. This isn't an error. */ @@ -160,14 +160,12 @@ send_key(int *eof) goto fail; } - gotit=0; - /* Now slurp up everything until we see the END */ while(fgets(line,MAX_LINE,input)!=NULL) if(sscanf(line,"KEY %16s END\n",keyid)==1) { - gotit=1; + end=1; break; } else @@ -184,7 +182,7 @@ send_key(int *eof) strcat(key[0],line); } - if(!gotit) + if(!end) { fprintf(console,"gpgkeys: no KEY %s END found\n",keyid); *eof=1; @@ -208,7 +206,7 @@ send_key(int *eof) free(key[0]); free(dn); - if(ret!=0) + if(ret!=0 && begin) fprintf(output,"KEY %s FAILED %d\n",keyid,ret); /* Not a fatal error */ |