mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-23 10:29:58 +01:00
* passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
problem in %-escaping. Noted by Ingo Kl�cker.
This commit is contained in:
parent
79a68af367
commit
2e21d851e9
@ -1,3 +1,8 @@
|
|||||||
|
2002-10-04 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
|
||||||
|
problem in %-escaping. Noted by Ingo Klöcker.
|
||||||
|
|
||||||
2002-10-03 David Shaw <dshaw@jabberwocky.com>
|
2002-10-03 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* keylist.c (print_capabilities): Secret-parts-missing keys should
|
* keylist.c (print_capabilities): Secret-parts-missing keys should
|
||||||
|
@ -732,6 +732,7 @@ agent_get_passphrase ( u32 *keyid, int mode, const char *tryagain_text )
|
|||||||
else
|
else
|
||||||
{ /* The new Assuan protocol */
|
{ /* The new Assuan protocol */
|
||||||
char *line, *p;
|
char *line, *p;
|
||||||
|
const unsigned char *s;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!tryagain_text)
|
if (!tryagain_text)
|
||||||
@ -751,33 +752,33 @@ agent_get_passphrase ( u32 *keyid, int mode, const char *tryagain_text )
|
|||||||
else
|
else
|
||||||
*p++ = 'X'; /* no caching */
|
*p++ = 'X'; /* no caching */
|
||||||
*p++ = ' ';
|
*p++ = ' ';
|
||||||
for (i=0; tryagain_text[i]; i++)
|
for (i=0, s=tryagain_text; *s; s++)
|
||||||
{
|
{
|
||||||
if (tryagain_text[i] < ' ' || tryagain_text[i] == '+')
|
if (*s < ' ' || *s == '+')
|
||||||
{
|
{
|
||||||
sprintf (p, "%%%02X", tryagain_text[i]);
|
sprintf (p, "%%%02X", *s);
|
||||||
p += 3;
|
p += 3;
|
||||||
}
|
}
|
||||||
else if (tryagain_text[i] == ' ')
|
else if (*s == ' ')
|
||||||
*p++ = '+';
|
*p++ = '+';
|
||||||
else
|
else
|
||||||
*p++ = tryagain_text[i];
|
*p++ = *s;
|
||||||
}
|
}
|
||||||
*p++ = ' ';
|
*p++ = ' ';
|
||||||
*p++ = 'X'; /* Use the standard prompt */
|
*p++ = 'X'; /* Use the standard prompt */
|
||||||
*p++ = ' ';
|
*p++ = ' ';
|
||||||
/* copy description */
|
/* copy description */
|
||||||
for (i=0; atext[i]; i++)
|
for (i=0, s= atext; *s; s++)
|
||||||
{
|
{
|
||||||
if (atext[i] < ' ' || atext[i] == '+')
|
if (*s < ' ' || *s == '+')
|
||||||
{
|
{
|
||||||
sprintf (p, "%%%02X", atext[i]);
|
sprintf (p, "%%%02X", *s);
|
||||||
p += 3;
|
p += 3;
|
||||||
}
|
}
|
||||||
else if (atext[i] == ' ')
|
else if (*s == ' ')
|
||||||
*p++ = '+';
|
*p++ = '+';
|
||||||
else
|
else
|
||||||
*p++ = atext[i];
|
*p++ = *s;
|
||||||
}
|
}
|
||||||
*p++ = '\n';
|
*p++ = '\n';
|
||||||
i = writen (fd, line, p - line);
|
i = writen (fd, line, p - line);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user