From 7f36233042691d942982c4e6c4ea16f7e27aeb6b Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Wed, 5 Feb 2014 17:11:50 +0000 Subject: [PATCH] GOption: fix bug in strv mode We are a bit too aggressive about freeing memory in strv mode. Only free it in the case that we actually set the pointer to NULL. Uncovered by the GApplication tests. --- glib/goption.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/glib/goption.c b/glib/goption.c index f017892..da04596 100644 --- a/glib/goption.c +++ b/glib/goption.c @@ -1717,9 +1717,6 @@ free_pending_nulls (GOptionContext *context, if (perform_nulls) { - if (context->strv_mode) - g_free (*n->ptr); - if (n->value) { /* Copy back the short options */ @@ -1727,7 +1724,12 @@ free_pending_nulls (GOptionContext *context, strcpy (*n->ptr + 1, n->value); } else - *n->ptr = NULL; + { + if (context->strv_mode) + g_free (*n->ptr); + + *n->ptr = NULL; + } } g_free (n->value); -- 2.7.4