mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
Fixed a W32 crash in gpg2 when creating a new keyring.
Typo fixes.
This commit is contained in:
parent
3d39e45a01
commit
843d6c69ef
@ -1,3 +1,8 @@
|
|||||||
|
2008-01-29 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* keydb.c (maybe_create_keyring): Take care of a missing slash.
|
||||||
|
(maybe_create_keyring) [W32]: Also test for forward slash.
|
||||||
|
|
||||||
2008-01-26 Werner Koch <wk@g10code.com>
|
2008-01-26 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* card-util.c (get_manufacturer): Add vendor 0004.
|
* card-util.c (get_manufacturer): Add vendor 0004.
|
||||||
|
19
g10/keydb.c
19
g10/keydb.c
@ -1,5 +1,6 @@
|
|||||||
/* keydb.c - key database dispatcher
|
/* keydb.c - key database dispatcher
|
||||||
* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
* Copyright (C) 2001, 2002, 2003, 2004, 2005,
|
||||||
|
* 2008 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This file is part of GnuPG.
|
* This file is part of GnuPG.
|
||||||
*
|
*
|
||||||
@ -82,6 +83,7 @@ maybe_create_keyring (char *filename, int force)
|
|||||||
int rc;
|
int rc;
|
||||||
mode_t oldmask;
|
mode_t oldmask;
|
||||||
char *last_slash_in_filename;
|
char *last_slash_in_filename;
|
||||||
|
int save_slash;
|
||||||
|
|
||||||
/* A quick test whether the filename already exists. */
|
/* A quick test whether the filename already exists. */
|
||||||
if (!access (filename, F_OK))
|
if (!access (filename, F_OK))
|
||||||
@ -98,6 +100,18 @@ maybe_create_keyring (char *filename, int force)
|
|||||||
tricky auto-creation which is anyway only done for some home
|
tricky auto-creation which is anyway only done for some home
|
||||||
directory name patterns. */
|
directory name patterns. */
|
||||||
last_slash_in_filename = strrchr (filename, DIRSEP_C);
|
last_slash_in_filename = strrchr (filename, DIRSEP_C);
|
||||||
|
#if HAVE_W32_SYSTEM
|
||||||
|
{
|
||||||
|
/* Windows may either have a slash or a backslash. Take care of it. */
|
||||||
|
char *p = strrchr (filename, '/');
|
||||||
|
if (!last_slash_in_filename || p > last_slash_in_filename)
|
||||||
|
last_slash_in_filename = p;
|
||||||
|
}
|
||||||
|
#endif /*HAVE_W32_SYSTEM*/
|
||||||
|
if (!last_slash_in_filename)
|
||||||
|
return gpg_error (GPG_ERR_ENOENT); /* No slash at all - should
|
||||||
|
not happen though. */
|
||||||
|
save_slash = *last_slash_in_filename;
|
||||||
*last_slash_in_filename = 0;
|
*last_slash_in_filename = 0;
|
||||||
if (access(filename, F_OK))
|
if (access(filename, F_OK))
|
||||||
{
|
{
|
||||||
@ -115,8 +129,7 @@ maybe_create_keyring (char *filename, int force)
|
|||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*last_slash_in_filename = DIRSEP_C;
|
*last_slash_in_filename = save_slash;
|
||||||
|
|
||||||
|
|
||||||
/* To avoid races with other instances of gpg trying to create or
|
/* To avoid races with other instances of gpg trying to create or
|
||||||
update the keyring (it is removed during an update for a short
|
update the keyring (it is removed during an update for a short
|
||||||
|
@ -103,7 +103,7 @@ X.509 specific are noted like [X.509: xxx]
|
|||||||
|
|
||||||
b16 MD5 checksum (useful for KS syncronisation), we might also want to use
|
b16 MD5 checksum (useful for KS syncronisation), we might also want to use
|
||||||
a mac here.
|
a mac here.
|
||||||
b4 resevered
|
b4 reserved
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ gpgsm_add_to_certlist (ctrl_t ctrl, const char *name, int secret,
|
|||||||
/* We have to ignore ambigious names as long as
|
/* We have to ignore ambigious names as long as
|
||||||
there only fault is a bad key usage. This is
|
there only fault is a bad key usage. This is
|
||||||
required to support encryption and signing
|
required to support encryption and signing
|
||||||
certifciates of the same subject.
|
certificates of the same subject.
|
||||||
|
|
||||||
Further we ignore them if they are due to an
|
Further we ignore them if they are due to an
|
||||||
identical certificate (which may happen if a
|
identical certificate (which may happen if a
|
||||||
|
Loading…
x
Reference in New Issue
Block a user