1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-03-28 22:49:59 +01:00

* gpgkeys_hkp.c, gpgkeys_oldhkp.c, ksutil.h: Some minor cleanup and

comments as to the size of MAX_LINE and MAX_URL.
This commit is contained in:
David Shaw 2005-05-02 00:46:39 +00:00
parent f02fe1dafb
commit 5e6d360596
4 changed files with 23 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2005-05-01 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_hkp.c, gpgkeys_oldhkp.c, ksutil.h: Some minor cleanup
and comments as to the size of MAX_LINE and MAX_URL.
2005-04-16 David Shaw <dshaw@jabberwocky.com> 2005-04-16 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_hkp.c: New hkp handler that uses curl or curl-shim. * gpgkeys_hkp.c: New hkp handler that uses curl or curl-shim.

View File

@ -72,7 +72,7 @@ int
send_key(int *eof) send_key(int *eof)
{ {
CURLcode res; CURLcode res;
char request[MAX_URL+100]; char request[MAX_URL];
int begin=0,end=0,ret=KEYSERVER_INTERNAL_ERROR; int begin=0,end=0,ret=KEYSERVER_INTERNAL_ERROR;
char keyid[17]; char keyid[17];
char line[MAX_LINE]; char line[MAX_LINE];
@ -80,7 +80,6 @@ send_key(int *eof)
size_t keylen=8,keymax=8; size_t keylen=8,keymax=8;
key=malloc(9); key=malloc(9);
strcpy(key,"keytext=");
if(!key) if(!key)
{ {
fprintf(console,"gpgkeys: out of memory\n"); fprintf(console,"gpgkeys: out of memory\n");
@ -88,6 +87,8 @@ send_key(int *eof)
goto fail; goto fail;
} }
strcpy(key,"keytext=");
/* Read and throw away input until we see the BEGIN */ /* Read and throw away input until we see the BEGIN */
while(fgets(line,MAX_LINE,input)!=NULL) while(fgets(line,MAX_LINE,input)!=NULL)
@ -216,6 +217,9 @@ get_key(char *getkey)
return KEYSERVER_NOT_SUPPORTED; return KEYSERVER_NOT_SUPPORTED;
} }
/* Note that the size of request is MAX_URL which already implies a
1024 byte PATH. MAX_URL+100 is absurdly safe. */
strcpy(request,"http://"); strcpy(request,"http://");
strcat(request,opt->host); strcat(request,opt->host);
strcat(request,":"); strcat(request,":");
@ -273,7 +277,9 @@ search_key(char *searchkey)
searchkey_encoded=curl_escape(searchkey,0); searchkey_encoded=curl_escape(searchkey,0);
request=malloc(MAX_URL+100+strlen(searchkey_encoded)); /* Note that MAX_URL already implies a 1024 byte PATH, so this is
safe. */
request=malloc(MAX_URL+strlen(searchkey_encoded));
if(!request) if(!request)
{ {
fprintf(console,"gpgkeys: out of memory\n"); fprintf(console,"gpgkeys: out of memory\n");

View File

@ -37,6 +37,10 @@
#include "keyserver.h" #include "keyserver.h"
#include "ksutil.h" #include "ksutil.h"
#define GET 0
#define SEND 1
#define SEARCH 2
extern char *optarg; extern char *optarg;
extern int optind; extern int optind;

View File

@ -27,13 +27,11 @@
#include <curl/curl.h> #include <curl/curl.h>
#endif #endif
#define GET 0 /* MAX_LINE must be at least 1 larger than the largest item we expect
#define SEND 1 to receive, including the name tag ("COMMAND", "PORT", etc) and
#define SEARCH 2 space between. In practice, that means it should be
strlen("OPAQUE")+1+sizeof_opaque+1 */
/* MAX_LINE must be 1 larger than the largest item we expect to #define MAX_LINE (6+1+1024+1)
receive. */
#define MAX_LINE 1080
#define MAX_COMMAND 6 #define MAX_COMMAND 6
#define MAX_OPTION 256 #define MAX_OPTION 256