From 2749c6bcd9e1f2ba629a6a4794dba1bddd3f7c0d Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 3 Mar 2009 12:02:42 +0000 Subject: [PATCH] Fix segv. --- scd/ChangeLog | 5 +++++ scd/command.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/scd/ChangeLog b/scd/ChangeLog index 1fd2de8c8..bcfd65b4a 100644 --- a/scd/ChangeLog +++ b/scd/ChangeLog @@ -1,3 +1,8 @@ +2009-03-03 Werner Koch + + * command.c (scd_command_handler): Remove dereference of STOPME + after free. + 2009-02-27 Werner Koch * app.c (get_supported_applications): New. diff --git a/scd/command.c b/scd/command.c index 07a1e9b54..40bf2a292 100644 --- a/scd/command.c +++ b/scd/command.c @@ -1857,6 +1857,7 @@ scd_command_handler (ctrl_t ctrl, int fd) { int rc; assuan_context_t ctx; + int stopme; if (fd == -1) { @@ -1942,13 +1943,14 @@ scd_command_handler (ctrl_t ctrl, int fd) BUG (); sl->next_session = ctrl->server_local->next_session; } + stopme = ctrl->server_local->stopme; xfree (ctrl->server_local); ctrl->server_local = NULL; /* Release the Assuan context. */ assuan_deinit_server (ctx); - if (ctrl->server_local->stopme) + if (stopme) scd_exit (0); /* If there are no more sessions return true. */