diff --git a/agent/ChangeLog b/agent/ChangeLog index 7eb73e013..f0e19ad37 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,8 @@ +2005-02-15 Werner Koch + + * findkey.c (modify_description): Don't increment OUT_LEN during + the second pass. + 2005-02-14 Moritz Schulte * command-ssh.c (es_read_byte): Renamed to ... diff --git a/agent/findkey.c b/agent/findkey.c index 896cb880e..1ac57ad07 100644 --- a/agent/findkey.c +++ b/agent/findkey.c @@ -179,18 +179,20 @@ modify_description (const char *in, const char *comment, char **result) switch (in[i]) { case '%': - out_len++; if (out) *out++ = '%'; + else + out_len++; break; case 'c': /* Comment. */ - out_len += comment_length; - if (out && comment_length) + if (out) { memcpy (out, comment, comment_length); out += comment_length; } + else + out_len += comment_length; break; default: /* Invalid special sequences are ignored. */ @@ -199,9 +201,10 @@ modify_description (const char *in, const char *comment, char **result) } else { - out_len++; if (out) *out++ = in[i]; + else + out_len++; } }