projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix buffer overflow in linear regression.
[pspp]
/
src
/
ui
/
gui
/
psppire-encoding-selector.c
diff --git
a/src/ui/gui/psppire-encoding-selector.c
b/src/ui/gui/psppire-encoding-selector.c
index 82677d8f59005660190be372b593f52bdf0327d2..a551ef054937a467941b1c998b2e7ae4d13099fd 100644
(file)
--- a/
src/ui/gui/psppire-encoding-selector.c
+++ b/
src/ui/gui/psppire-encoding-selector.c
@@
-18,7
+18,6
@@
#include "ui/gui/psppire-encoding-selector.h"
#include "ui/gui/psppire-encoding-selector.h"
-#include <assert.h>
#include <stdlib.h>
#include "libpspp/cast.h"
#include <stdlib.h>
#include "libpspp/cast.h"
@@
-183,13
+182,17
@@
psppire_encoding_selector_new (const char *default_encoding,
return hbox;
}
return hbox;
}
+/*
+ Return a string describing the currently selected encoding.
+ The caller should free this string when no longer required.
+*/
gchar *
psppire_encoding_selector_get_encoding (GtkWidget *selector)
{
gchar *encoding = NULL;
gchar *
psppire_encoding_selector_get_encoding (GtkWidget *selector)
{
gchar *encoding = NULL;
- GList *list, *pos;
+ GList *pos;
+ GList *list = gtk_container_get_children (GTK_CONTAINER (selector));
- list = gtk_container_get_children (GTK_CONTAINER (selector));
for (pos = list; pos; pos = pos->next)
{
GtkWidget *widget = pos->data;
for (pos = list; pos; pos = pos->next)
{
GtkWidget *widget = pos->data;
@@
-206,7
+209,14
@@
psppire_encoding_selector_get_encoding (GtkWidget *selector)
break;
}
}
break;
}
}
+
g_list_free (list);
g_list_free (list);
- return encoding && !strcmp (encoding, "Auto") ? NULL : encoding;
+ if (0 == strcmp (encoding, "Auto"))
+ {
+ g_free (encoding);
+ return NULL;
+ }
+
+ return encoding;
}
}