mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
Fixed a bunch of little bugs as reported by Fabian Keil.
Still one problem left; marked with a gcc #warning.
This commit is contained in:
parent
e05aeca87b
commit
2e0ce7d97f
1
THANKS
1
THANKS
@ -75,6 +75,7 @@ Edwin Woudt edwin at woudt.nl
|
|||||||
Enzo Michelangeli em at MailAndNews.com
|
Enzo Michelangeli em at MailAndNews.com
|
||||||
Ernst Molitor ernst.molitor at uni-bonn.de
|
Ernst Molitor ernst.molitor at uni-bonn.de
|
||||||
Evgeny Legerov
|
Evgeny Legerov
|
||||||
|
Fabian Keil fk at fabiankeil de
|
||||||
Fabio Coatti cova at ferrara.linux.it
|
Fabio Coatti cova at ferrara.linux.it
|
||||||
Felix von Leitner leitner at amdiv.de
|
Felix von Leitner leitner at amdiv.de
|
||||||
fish stiqz fish at analog.org
|
fish stiqz fish at analog.org
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2009-06-24 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* genkey.c (agent_protect_and_store): Return RC and not 0.
|
||||||
|
* protect.c (do_encryption): Fix ignored error code from malloc.
|
||||||
|
Reported by Fabian Keil.
|
||||||
|
|
||||||
2009-06-17 Werner Koch <wk@g10code.com>
|
2009-06-17 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* call-pinentry.c (agent_get_confirmation): Add arg WITH_CANCEL.
|
* call-pinentry.c (agent_get_confirmation): Add arg WITH_CANCEL.
|
||||||
|
@ -480,5 +480,5 @@ agent_protect_and_store (ctrl_t ctrl, gcry_sexp_t s_skey)
|
|||||||
|
|
||||||
rc = store_key (s_skey, pi? pi->pin:NULL, 1);
|
rc = store_key (s_skey, pi? pi->pin:NULL, 1);
|
||||||
xfree (pi);
|
xfree (pi);
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -176,8 +176,11 @@ do_encryption (const unsigned char *protbegin, size_t protlen,
|
|||||||
iv = xtrymalloc (blklen*2+8);
|
iv = xtrymalloc (blklen*2+8);
|
||||||
if (!iv)
|
if (!iv)
|
||||||
rc = gpg_error (GPG_ERR_ENOMEM);
|
rc = gpg_error (GPG_ERR_ENOMEM);
|
||||||
gcry_create_nonce (iv, blklen*2+8);
|
else
|
||||||
rc = gcry_cipher_setiv (hd, iv, blklen);
|
{
|
||||||
|
gcry_create_nonce (iv, blklen*2+8);
|
||||||
|
rc = gcry_cipher_setiv (hd, iv, blklen);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!rc)
|
if (!rc)
|
||||||
{
|
{
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2009-06-24 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* estream.c (es_read_line): In the malloc error case, set
|
||||||
|
MAX_LENGTH to 0 only if requested.
|
||||||
|
* xreadline.c (read_line): Ditto.
|
||||||
|
* estream.c (es_write_sanitized_utf8_buffer): Pass on error from
|
||||||
|
es_fputs.
|
||||||
|
* sexputil.c (get_rsa_pk_from_canon_sexp): Check for error after
|
||||||
|
the loop. Reported by Fabian Keil.
|
||||||
|
|
||||||
2009-06-03 Werner Koch <wk@g10code.com>
|
2009-06-03 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* estream.c (es_convert_mode): Rewrite and support the "x" flag.
|
* estream.c (es_convert_mode): Rewrite and support the "x" flag.
|
||||||
|
@ -450,8 +450,8 @@ es_func_mem_write (void *cookie, const void *buffer, size_t size)
|
|||||||
|
|
||||||
if (!mem_cookie->flags.grow)
|
if (!mem_cookie->flags.grow)
|
||||||
{
|
{
|
||||||
/* We are not alloew to grow, thus limit the size to the left
|
/* We are not allowed to grow, thus limit the size to the left
|
||||||
space. FIXME: Does the grow flag an its semtics make sense
|
space. FIXME: Does the grow flag and its sematics make sense
|
||||||
at all? */
|
at all? */
|
||||||
if (size > mem_cookie->memory_size - mem_cookie->offset)
|
if (size > mem_cookie->memory_size - mem_cookie->offset)
|
||||||
size = mem_cookie->memory_size - mem_cookie->offset;
|
size = mem_cookie->memory_size - mem_cookie->offset;
|
||||||
@ -463,7 +463,7 @@ es_func_mem_write (void *cookie, const void *buffer, size_t size)
|
|||||||
size_t newsize;
|
size_t newsize;
|
||||||
|
|
||||||
newsize = mem_cookie->memory_size + mem_cookie->block_size;
|
newsize = mem_cookie->memory_size + mem_cookie->block_size;
|
||||||
|
#warning READ the code and see how it should work
|
||||||
newsize = mem_cookie->offset + size;
|
newsize = mem_cookie->offset + size;
|
||||||
if (newsize < mem_cookie->offset)
|
if (newsize < mem_cookie->offset)
|
||||||
{
|
{
|
||||||
@ -2797,7 +2797,9 @@ es_read_line (estream_t stream,
|
|||||||
{
|
{
|
||||||
int save_errno = errno;
|
int save_errno = errno;
|
||||||
mem_free (buffer);
|
mem_free (buffer);
|
||||||
*length_of_buffer = *max_length = 0;
|
*length_of_buffer = 0;
|
||||||
|
if (max_length)
|
||||||
|
*max_length = 0;
|
||||||
ESTREAM_UNLOCK (stream);
|
ESTREAM_UNLOCK (stream);
|
||||||
errno = save_errno;
|
errno = save_errno;
|
||||||
return -1;
|
return -1;
|
||||||
@ -3203,7 +3205,7 @@ es_write_sanitized_utf8_buffer (estream_t stream,
|
|||||||
*bytes_written = strlen (buf);
|
*bytes_written = strlen (buf);
|
||||||
ret = es_fputs (buf, stream);
|
ret = es_fputs (buf, stream);
|
||||||
xfree (buf);
|
xfree (buf);
|
||||||
return i;
|
return rt == EOF? ret : (int)i;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return es_write_sanitized (stream, p, length, delimiters, bytes_written);
|
return es_write_sanitized (stream, p, length, delimiters, bytes_written);
|
||||||
|
@ -377,6 +377,9 @@ get_rsa_pk_from_canon_sexp (const unsigned char *keydata, size_t keydatalen,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
if (!rsa_n || !rsa_n_len || !rsa_e || !rsa_e_len)
|
if (!rsa_n || !rsa_n_len || !rsa_e || !rsa_e_len)
|
||||||
return gpg_error (GPG_ERR_BAD_PUBKEY);
|
return gpg_error (GPG_ERR_BAD_PUBKEY);
|
||||||
|
|
||||||
|
@ -95,7 +95,9 @@ read_line (FILE *fp,
|
|||||||
{
|
{
|
||||||
int save_errno = errno;
|
int save_errno = errno;
|
||||||
xfree (buffer);
|
xfree (buffer);
|
||||||
*length_of_buffer = *max_length = 0;
|
*length_of_buffer = 0;
|
||||||
|
if (max_length)
|
||||||
|
*max_length = 0;
|
||||||
errno = save_errno;
|
errno = save_errno;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
2009-06-24 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* keyedit.c (menu_select_key): Renmove dead assign to I.
|
||||||
|
(menu_select_uid): Ditto.
|
||||||
|
* keyring.c (keyring_search): Remove dead assign to NAME.
|
||||||
|
* card-util.c (card_edit): Remove useless DID_CHECKPIN.
|
||||||
|
* call-agent.c (unhexify_fpr): Remove dead op on N.
|
||||||
|
* passphrase.c (passphrase_to_dek_ext): Do not deref a NULL PW.
|
||||||
|
* revoke.c (gen_revoke): Remove unused malloc of PK.
|
||||||
|
* parse-packet.c (mpi_read): Init NREAD.
|
||||||
|
Reported by Fabian Keil.
|
||||||
|
|
||||||
2009-06-17 Werner Koch <wk@g10code.com>
|
2009-06-17 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* parse-packet.c (parse): Use a casted -1 instead of a 32 bit
|
* parse-packet.c (parse): Use a casted -1 instead of a 32 bit
|
||||||
|
@ -132,7 +132,6 @@ unhexify_fpr (const char *hexstr, unsigned char *fpr)
|
|||||||
;
|
;
|
||||||
if (*s || (n != 40))
|
if (*s || (n != 40))
|
||||||
return 0; /* no fingerprint (invalid or wrong length). */
|
return 0; /* no fingerprint (invalid or wrong length). */
|
||||||
n /= 2;
|
|
||||||
for (s=hexstr, n=0; *s; s += 2, n++)
|
for (s=hexstr, n=0; *s; s += 2, n++)
|
||||||
fpr[n] = xtoi_2 (s);
|
fpr[n] = xtoi_2 (s);
|
||||||
return 1; /* okay */
|
return 1; /* okay */
|
||||||
|
@ -1600,7 +1600,7 @@ card_edit (strlist_t commands)
|
|||||||
int have_commands = !!commands;
|
int have_commands = !!commands;
|
||||||
int redisplay = 1;
|
int redisplay = 1;
|
||||||
char *answer = NULL;
|
char *answer = NULL;
|
||||||
int did_checkpin = 0, allow_admin=0;
|
int allow_admin=0;
|
||||||
char serialnobuf[50];
|
char serialnobuf[50];
|
||||||
|
|
||||||
|
|
||||||
@ -1812,12 +1812,10 @@ card_edit (strlist_t commands)
|
|||||||
|
|
||||||
case cmdPASSWD:
|
case cmdPASSWD:
|
||||||
change_pin (0, allow_admin);
|
change_pin (0, allow_admin);
|
||||||
did_checkpin = 0; /* Need to reset it of course. */
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cmdUNBLOCK:
|
case cmdUNBLOCK:
|
||||||
change_pin (1, allow_admin);
|
change_pin (1, allow_admin);
|
||||||
did_checkpin = 0; /* Need to reset it of course. */
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cmdQUIT:
|
case cmdQUIT:
|
||||||
|
@ -4458,7 +4458,7 @@ menu_select_uid( KBNODE keyblock, int idx )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { /* reset all */
|
else { /* reset all */
|
||||||
for( i=0, node = keyblock; node; node = node->next ) {
|
for (node = keyblock; node; node = node->next) {
|
||||||
if( node->pkt->pkttype == PKT_USER_ID )
|
if( node->pkt->pkttype == PKT_USER_ID )
|
||||||
node->flag &= ~NODFLG_SELUID;
|
node->flag &= ~NODFLG_SELUID;
|
||||||
}
|
}
|
||||||
@ -4543,7 +4543,7 @@ menu_select_key( KBNODE keyblock, int idx )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { /* reset all */
|
else { /* reset all */
|
||||||
for( i=0, node = keyblock; node; node = node->next ) {
|
for ( node = keyblock; node; node = node->next ) {
|
||||||
if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
||||||
|| node->pkt->pkttype == PKT_SECRET_SUBKEY )
|
|| node->pkt->pkttype == PKT_SECRET_SUBKEY )
|
||||||
node->flag &= ~NODFLG_SELKEY;
|
node->flag &= ~NODFLG_SELKEY;
|
||||||
|
@ -997,7 +997,7 @@ keyring_search (KEYRING_HANDLE hd, KEYDB_SEARCH_DESC *desc,
|
|||||||
hd->word_match.name = xstrdup (name);
|
hd->word_match.name = xstrdup (name);
|
||||||
hd->word_match.pattern = prepare_word_match (name);
|
hd->word_match.pattern = prepare_word_match (name);
|
||||||
}
|
}
|
||||||
name = hd->word_match.pattern;
|
/* name = hd->word_match.pattern; */
|
||||||
}
|
}
|
||||||
|
|
||||||
init_packet(&pkt);
|
init_packet(&pkt);
|
||||||
|
@ -112,7 +112,7 @@ mpi_read (iobuf_t inp, unsigned int *ret_nread, int secure)
|
|||||||
|
|
||||||
int c, c1, c2, i;
|
int c, c1, c2, i;
|
||||||
unsigned int nbits, nbytes;
|
unsigned int nbits, nbytes;
|
||||||
size_t nread;
|
size_t nread = 0;
|
||||||
gcry_mpi_t a = NULL;
|
gcry_mpi_t a = NULL;
|
||||||
byte *buf = NULL;
|
byte *buf = NULL;
|
||||||
byte *p;
|
byte *p;
|
||||||
|
@ -600,7 +600,7 @@ passphrase_to_dek_ext (u32 *keyid, int pubkey_algo,
|
|||||||
get_last_passphrase(). */
|
get_last_passphrase(). */
|
||||||
dek = xmalloc_secure_clear ( sizeof *dek );
|
dek = xmalloc_secure_clear ( sizeof *dek );
|
||||||
dek->algo = cipher_algo;
|
dek->algo = cipher_algo;
|
||||||
if ( !*pw && (mode == 2 || mode == 4))
|
if ( (!pw || !*pw) && (mode == 2 || mode == 4))
|
||||||
dek->keylen = 0;
|
dek->keylen = 0;
|
||||||
else
|
else
|
||||||
hash_passphrase (dek, pw, s2k);
|
hash_passphrase (dek, pw, s2k);
|
||||||
|
@ -489,8 +489,6 @@ gen_revoke( const char *uname )
|
|||||||
keyid_from_sk( sk, sk_keyid );
|
keyid_from_sk( sk, sk_keyid );
|
||||||
print_seckey_info (sk);
|
print_seckey_info (sk);
|
||||||
|
|
||||||
pk = xmalloc_clear( sizeof *pk );
|
|
||||||
|
|
||||||
/* FIXME: We should get the public key direct from the secret one */
|
/* FIXME: We should get the public key direct from the secret one */
|
||||||
|
|
||||||
pub_keyblock=get_pubkeyblock(sk_keyid);
|
pub_keyblock=get_pubkeyblock(sk_keyid);
|
||||||
|
@ -739,6 +739,8 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(void)need_words; /* Not yet implemented. */
|
||||||
|
|
||||||
if (!hd->fp)
|
if (!hd->fp)
|
||||||
{
|
{
|
||||||
hd->fp = fopen (hd->kb->fname, "rb");
|
hd->fp = fopen (hd->kb->fname, "rb");
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-06-24 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpgkeys_ldap.c (send_key): Do not deep free a NULL modlist.
|
||||||
|
Reported by Fabian Keil.
|
||||||
|
|
||||||
2009-05-28 David Shaw <dshaw@jabberwocky.com>
|
2009-05-28 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
From 1.4:
|
From 1.4:
|
||||||
|
@ -771,14 +771,16 @@ send_key(int *r_eof)
|
|||||||
ret=KEYSERVER_OK;
|
ret=KEYSERVER_OK;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
/* Unwind and free the whole modlist structure */
|
if (modlist)
|
||||||
for(ml=modlist;*ml;ml++)
|
|
||||||
{
|
{
|
||||||
free_mod_values(*ml);
|
/* Unwind and free the whole modlist structure */
|
||||||
free(*ml);
|
for(ml=modlist;*ml;ml++)
|
||||||
|
{
|
||||||
|
free_mod_values(*ml);
|
||||||
|
free(*ml);
|
||||||
|
}
|
||||||
|
free(modlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(modlist);
|
|
||||||
free(addlist);
|
free(addlist);
|
||||||
free(dn);
|
free(dn);
|
||||||
free(key);
|
free(key);
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2009-06-24 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* call-dirmngr.c (pattern_from_strlist): Remove dead assignment of N.
|
||||||
|
* sign.c (gpgsm_sign): Remove dead assignment.
|
||||||
|
* certreqgen.c (create_request): Assign GPG_ERR_BUG to RC.
|
||||||
|
Reported by Fabian Keil.
|
||||||
|
|
||||||
2009-05-27 Werner Koch <wk@g10code.com>
|
2009-05-27 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* encrypt.c (encrypt_dek): Make use of make_canon_sexp.
|
* encrypt.c (encrypt_dek): Make use of make_canon_sexp.
|
||||||
|
@ -747,7 +747,7 @@ pattern_from_strlist (strlist_t names)
|
|||||||
if (!pattern)
|
if (!pattern)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for (n=0, sl=names; sl; sl = sl->next)
|
for (sl=names; sl; sl = sl->next)
|
||||||
{
|
{
|
||||||
for (s=sl->d; *s; s++)
|
for (s=sl->d; *s; s++)
|
||||||
{
|
{
|
||||||
|
@ -769,7 +769,7 @@ create_request (ctrl_t ctrl,
|
|||||||
if (!n)
|
if (!n)
|
||||||
{
|
{
|
||||||
log_error ("libksba did not return a proper S-Exp\n");
|
log_error ("libksba did not return a proper S-Exp\n");
|
||||||
err = gpg_error (GPG_ERR_BUG);
|
rc = gpg_error (GPG_ERR_BUG);
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
rc = gcry_sexp_sscan (&s_pkey, NULL, (const char*)public, n);
|
rc = gcry_sexp_sscan (&s_pkey, NULL, (const char*)public, n);
|
||||||
|
@ -403,7 +403,7 @@ gpgsm_sign (ctrl_t ctrl, certlist_t signerlist,
|
|||||||
log_info ("user requested hash algorithm %d\n", opt.forced_digest_algo);
|
log_info ("user requested hash algorithm %d\n", opt.forced_digest_algo);
|
||||||
for (i=0, cl=signerlist; cl; cl = cl->next, i++)
|
for (i=0, cl=signerlist; cl; cl = cl->next, i++)
|
||||||
{
|
{
|
||||||
const char *oid = ksba_cert_get_digest_algo (cl->cert);
|
const char *oid;
|
||||||
|
|
||||||
if (opt.forced_digest_algo)
|
if (opt.forced_digest_algo)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user