diff options
Diffstat (limited to 'scd')
-rw-r--r-- | scd/ChangeLog | 6 | ||||
-rw-r--r-- | scd/command.c | 1 | ||||
-rw-r--r-- | scd/scdaemon.c | 6 |
3 files changed, 12 insertions, 1 deletions
diff --git a/scd/ChangeLog b/scd/ChangeLog index d1ab1c643..9a545d87f 100644 --- a/scd/ChangeLog +++ b/scd/ChangeLog @@ -1,3 +1,9 @@ +2009-10-25 Werner Koch <[email protected]> + + * scdaemon.c (scd_deinit_default_ctrl): Release IN_DATA. + * command.c (cmd_setdata): Release IN_DATA. Reported by Klaus + Flittner. + 2009-10-16 Marcus Brinkmann <[email protected]> * AM_CFLAGS, scdaemon_LDADD: Use libassuan instead of libassuan-pth. diff --git a/scd/command.c b/scd/command.c index 09c0b8e45..b70455eec 100644 --- a/scd/command.c +++ b/scd/command.c @@ -804,6 +804,7 @@ cmd_setdata (assuan_context_t ctx, char *line) if (!buf) return out_of_core (); + xfree (ctrl->in_data.value); ctrl->in_data.value = buf; ctrl->in_data.valuelen = n; for (p=line, n=0; n < ctrl->in_data.valuelen; p += 2, n++) diff --git a/scd/scdaemon.c b/scd/scdaemon.c index f483d2098..5823c9948 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -895,7 +895,11 @@ scd_init_default_ctrl (ctrl_t ctrl) static void scd_deinit_default_ctrl (ctrl_t ctrl) { - (void)ctrl; + if (!ctrl) + return; + xfree (ctrl->in_data.value); + ctrl->in_data.value = NULL; + ctrl->in_data.valuelen = 0; } |