mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
* card-util.c (print_name): Fixed bad format string usage.
(print_isoname): Ditto. * trustdb.c (check_regexp): s/exp/expr/. * keyedit.c (trustsig_prompt): Removed a "> 255" term; it is always false due to the data type. * passphrase.c (agent_get_passphrase): Use xasprintf and avoid non-literal format strings. * tdbio.c (upd_hashtable, drop_from_hashtable, lookup_hashtable): Fixed log_error format string bugs. Kudos to the now working gcc-3.3 -Wformat-nonliteral and Florian Weimer's investigations in gnupg 1.2.3.
This commit is contained in:
parent
8ab35a7d26
commit
23fa5c9792
@ -1,3 +1,21 @@
|
|||||||
|
2003-12-17 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* card-util.c (print_name): Fixed bad format string usage.
|
||||||
|
(print_isoname): Ditto.
|
||||||
|
|
||||||
|
* trustdb.c (check_regexp): s/exp/expr/.
|
||||||
|
|
||||||
|
* keyedit.c (trustsig_prompt): Removed a "> 255" term; it is
|
||||||
|
always false due to the data type.
|
||||||
|
|
||||||
|
* passphrase.c (agent_get_passphrase): Use xasprintf and avoid
|
||||||
|
non-literal format strings.
|
||||||
|
|
||||||
|
* tdbio.c (upd_hashtable, drop_from_hashtable, lookup_hashtable):
|
||||||
|
Fixed log_error format string bugs. Kudos to the now working
|
||||||
|
gcc-3.3 -Wformat-nonliteral and Florian Weimer's investigations in
|
||||||
|
gnupg 1.2.3.
|
||||||
|
|
||||||
2003-12-15 Werner Koch <wk@gnupg.org>
|
2003-12-15 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* seckey-cert.c (protect_secret_key): Use gry_create_nonce for the
|
* seckey-cert.c (protect_secret_key): Use gry_create_nonce for the
|
||||||
|
@ -169,8 +169,7 @@ print_sha1_fpr_colon (FILE *fp, const unsigned char *fpr)
|
|||||||
static void
|
static void
|
||||||
print_name (FILE *fp, const char *text, const char *name)
|
print_name (FILE *fp, const char *text, const char *name)
|
||||||
{
|
{
|
||||||
tty_fprintf (fp, text);
|
tty_fprintf (fp, "%s", text);
|
||||||
|
|
||||||
|
|
||||||
/* FIXME: tty_printf_utf8_string2 eats everything after and
|
/* FIXME: tty_printf_utf8_string2 eats everything after and
|
||||||
including an @ - e.g. when printing an url. */
|
including an @ - e.g. when printing an url. */
|
||||||
@ -192,7 +191,7 @@ print_isoname (FILE *fp, const char *text, const char *tag, const char *name)
|
|||||||
if (opt.with_colons)
|
if (opt.with_colons)
|
||||||
fprintf (fp, "%s:", tag);
|
fprintf (fp, "%s:", tag);
|
||||||
else
|
else
|
||||||
tty_fprintf (fp, text);
|
tty_fprintf (fp, "%s", text);
|
||||||
|
|
||||||
if (name && *name)
|
if (name && *name)
|
||||||
{
|
{
|
||||||
|
@ -344,7 +344,7 @@ trustsig_prompt(byte *trust_value,byte *trust_depth,char **regexp)
|
|||||||
cpr_kill_prompt();
|
cpr_kill_prompt();
|
||||||
*trust_depth=atoi(p);
|
*trust_depth=atoi(p);
|
||||||
xfree (p);
|
xfree (p);
|
||||||
if(*trust_depth<1 || *trust_depth>255)
|
if(*trust_depth < 1 )
|
||||||
*trust_depth=0;
|
*trust_depth=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -673,32 +673,26 @@ agent_get_passphrase ( u32 *keyid, int mode, const char *tryagain_text,
|
|||||||
const char *algo_name = gcry_pk_algo_name ( pk->pubkey_algo );
|
const char *algo_name = gcry_pk_algo_name ( pk->pubkey_algo );
|
||||||
const char *timestr;
|
const char *timestr;
|
||||||
char *maink;
|
char *maink;
|
||||||
const char *fmtstr;
|
|
||||||
|
|
||||||
if ( !algo_name )
|
if ( !algo_name )
|
||||||
algo_name = "?";
|
algo_name = "?";
|
||||||
|
|
||||||
fmtstr = _(" (main key ID %08lX)");
|
|
||||||
maink = xmalloc ( strlen (fmtstr) + 20 );
|
|
||||||
if( keyid[2] && keyid[3] && keyid[0] != keyid[2]
|
if( keyid[2] && keyid[3] && keyid[0] != keyid[2]
|
||||||
&& keyid[1] != keyid[3] )
|
&& keyid[1] != keyid[3] )
|
||||||
sprintf( maink, fmtstr, (ulong)keyid[3] );
|
maink = xasprintf ( _(" (main key ID %08lX)"), (ulong)keyid[3] );
|
||||||
else
|
else
|
||||||
*maink = 0;
|
maink = NULL;
|
||||||
|
|
||||||
uid = get_user_id ( keyid, &uidlen );
|
uid = get_user_id ( keyid, &uidlen );
|
||||||
timestr = strtimestamp (pk->timestamp);
|
timestr = strtimestamp (pk->timestamp);
|
||||||
fmtstr = _("You need a passphrase to unlock the"
|
atext = xasprintf (
|
||||||
|
_("You need a passphrase to unlock the"
|
||||||
" secret key for user:\n"
|
" secret key for user:\n"
|
||||||
"\"%.*s\"\n"
|
"\"%.*s\"\n"
|
||||||
"%u-bit %s key, ID %08lX, created %s%s\n" );
|
"%u-bit %s key, ID %08lX, created %s%s\n" ),
|
||||||
atext = xmalloc ( 100 + strlen (fmtstr)
|
|
||||||
+ uidlen + 15 + strlen(algo_name) + 8
|
|
||||||
+ strlen (timestr) + strlen (maink) );
|
|
||||||
sprintf (atext, fmtstr,
|
|
||||||
uidlen, uid,
|
uidlen, uid,
|
||||||
nbits_from_pk (pk), algo_name, (ulong)keyid[1], timestr,
|
nbits_from_pk (pk), algo_name, (ulong)keyid[1], timestr,
|
||||||
maink );
|
maink?maink:"" );
|
||||||
xfree (uid);
|
xfree (uid);
|
||||||
xfree (maink);
|
xfree (maink);
|
||||||
|
|
||||||
|
27
g10/tdbio.c
27
g10/tdbio.c
@ -782,7 +782,7 @@ upd_hashtable( ulong table, byte *key, int keylen, ulong newrecnum )
|
|||||||
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
||||||
rc = tdbio_read_record( hashrec, &rec, RECTYPE_HTBL );
|
rc = tdbio_read_record( hashrec, &rec, RECTYPE_HTBL );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error( db_name, "upd_hashtable: read failed: %s\n",
|
log_error ("upd_hashtable in `%s': read failed: %s\n", db_name,
|
||||||
gpg_strerror (rc) );
|
gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -792,8 +792,8 @@ upd_hashtable( ulong table, byte *key, int keylen, ulong newrecnum )
|
|||||||
rec.r.htbl.item[msb % ITEMS_PER_HTBL_RECORD] = newrecnum;
|
rec.r.htbl.item[msb % ITEMS_PER_HTBL_RECORD] = newrecnum;
|
||||||
rc = tdbio_write_record( &rec );
|
rc = tdbio_write_record( &rec );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error( db_name, "upd_hashtable: write htbl failed: %s\n",
|
log_error ("upd_hashtable in `%s': write htbl failed: %s\n",
|
||||||
gpg_strerror (rc) );
|
db_name, gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -931,8 +931,8 @@ drop_from_hashtable( ulong table, byte *key, int keylen, ulong recnum )
|
|||||||
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
||||||
rc = tdbio_read_record( hashrec, &rec, RECTYPE_HTBL );
|
rc = tdbio_read_record( hashrec, &rec, RECTYPE_HTBL );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error( db_name, "drop_from_hashtable: read failed: %s\n",
|
log_error ("drop_from_hashtable `%s': read failed: %s\n",
|
||||||
gpg_strerror (rc) );
|
db_name, gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -944,8 +944,8 @@ drop_from_hashtable( ulong table, byte *key, int keylen, ulong recnum )
|
|||||||
rec.r.htbl.item[msb % ITEMS_PER_HTBL_RECORD] = 0;
|
rec.r.htbl.item[msb % ITEMS_PER_HTBL_RECORD] = 0;
|
||||||
rc = tdbio_write_record( &rec );
|
rc = tdbio_write_record( &rec );
|
||||||
if( rc )
|
if( rc )
|
||||||
log_error( db_name, "drop_from_hashtable: write htbl failed: %s\n",
|
log_error ("drop_from_hashtable `%s': write htbl failed: %s\n",
|
||||||
gpg_strerror (rc) );
|
db_name, gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -973,8 +973,9 @@ drop_from_hashtable( ulong table, byte *key, int keylen, ulong recnum )
|
|||||||
rec.r.hlst.rnum[i] = 0; /* drop */
|
rec.r.hlst.rnum[i] = 0; /* drop */
|
||||||
rc = tdbio_write_record( &rec );
|
rc = tdbio_write_record( &rec );
|
||||||
if( rc )
|
if( rc )
|
||||||
log_error( db_name, "drop_from_hashtable: write htbl failed: %s\n",
|
log_error ("drop_from_hashtable `%s': "
|
||||||
gpg_strerror (rc) );
|
"write htbl failed: %s\n",
|
||||||
|
db_name, gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1020,7 +1021,8 @@ lookup_hashtable( ulong table, const byte *key, size_t keylen,
|
|||||||
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
||||||
rc = tdbio_read_record( hashrec, rec, RECTYPE_HTBL );
|
rc = tdbio_read_record( hashrec, rec, RECTYPE_HTBL );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error( db_name, "lookup_hashtable failed: %s\n", gpg_strerror (rc) );
|
log_error ("lookup_hashtable in `%s' failed: %s\n",
|
||||||
|
db_name, gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1030,14 +1032,15 @@ lookup_hashtable( ulong table, const byte *key, size_t keylen,
|
|||||||
|
|
||||||
rc = tdbio_read_record( item, rec, 0 );
|
rc = tdbio_read_record( item, rec, 0 );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error( db_name, "hashtable read failed: %s\n", gpg_strerror (rc) );
|
log_error ("hashtable `%s' read failed: %s\n",
|
||||||
|
db_name, gpg_strerror (rc) );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
if( rec->rectype == RECTYPE_HTBL ) {
|
if( rec->rectype == RECTYPE_HTBL ) {
|
||||||
hashrec = item;
|
hashrec = item;
|
||||||
level++;
|
level++;
|
||||||
if( level >= keylen ) {
|
if( level >= keylen ) {
|
||||||
log_error( db_name, "hashtable has invalid indirections\n");
|
log_error ("hashtable `%s' has invalid indirections\n", db_name);
|
||||||
return GPG_ERR_TRUSTDB;
|
return GPG_ERR_TRUSTDB;
|
||||||
}
|
}
|
||||||
goto next_level;
|
goto next_level;
|
||||||
|
@ -1539,19 +1539,19 @@ mark_usable_uid_certs (KBNODE keyblock, KBNODE uidnode,
|
|||||||
signature. Returns 1 for match, and 0 for no match or regex
|
signature. Returns 1 for match, and 0 for no match or regex
|
||||||
error. */
|
error. */
|
||||||
static int
|
static int
|
||||||
check_regexp(const char *exp,const char *string)
|
check_regexp(const char *expr,const char *string)
|
||||||
{
|
{
|
||||||
#ifdef DISABLE_REGEX
|
#ifdef DISABLE_REGEX
|
||||||
/* When DISABLE_REGEX is defined, assume all regexps do not
|
/* When DISABLE_REGEX is defined, assume all regexps do not
|
||||||
match. */
|
match. */
|
||||||
return 0;
|
return 0;
|
||||||
#elif defined(__riscos__)
|
#elif defined(__riscos__)
|
||||||
return riscos_check_regexp(exp, string, DBG_TRUST);
|
return riscos_check_regexp(expr, string, DBG_TRUST);
|
||||||
#else
|
#else
|
||||||
int ret;
|
int ret;
|
||||||
regex_t pat;
|
regex_t pat;
|
||||||
|
|
||||||
if(regcomp(&pat,exp,REG_ICASE|REG_NOSUB|REG_EXTENDED)!=0)
|
if(regcomp(&pat,expr,REG_ICASE|REG_NOSUB|REG_EXTENDED)!=0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ret=regexec(&pat,string,0,NULL,0);
|
ret=regexec(&pat,string,0,NULL,0);
|
||||||
@ -1559,7 +1559,7 @@ check_regexp(const char *exp,const char *string)
|
|||||||
regfree(&pat);
|
regfree(&pat);
|
||||||
|
|
||||||
if(DBG_TRUST)
|
if(DBG_TRUST)
|
||||||
log_debug("regexp \"%s\" on \"%s\": %s\n",exp,string,ret==0?"YES":"NO");
|
log_debug("regexp \"%s\" on \"%s\": %s\n",expr,string,ret==0?"YES":"NO");
|
||||||
|
|
||||||
return (ret==0);
|
return (ret==0);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user