projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix buffer overflow reported by John Darrington.
[pspp]
/
src
/
language
/
dictionary
/
variable-label.c
diff --git
a/src/language/dictionary/variable-label.c
b/src/language/dictionary/variable-label.c
index 7380d3d6f5a7a4e01770f13d7e22fd3802b40bee..c3bb4c2242b73d4553e00bfbe5cc50dd49ae2cfd 100644
(file)
--- a/
src/language/dictionary/variable-label.c
+++ b/
src/language/dictionary/variable-label.c
@@
-26,6
+26,7
@@
#include <data/variable.h>
#include <language/command.h>
#include <language/lexer/lexer.h>
#include <data/variable.h>
#include <language/command.h>
#include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
#include <libpspp/alloc.h>
#include <libpspp/message.h>
#include <libpspp/str.h>
#include <libpspp/alloc.h>
#include <libpspp/message.h>
#include <libpspp/str.h>
@@
-34,7
+35,7
@@
#define _(msgid) gettext (msgid)
int
#define _(msgid) gettext (msgid)
int
-cmd_variable_labels (
void
)
+cmd_variable_labels (
struct dataset *ds
)
{
do
{
{
do
{
@@
-43,7
+44,7
@@
cmd_variable_labels (void)
size_t i;
size_t i;
- if (!parse_variables (d
efault_dict
, &v, &nv, PV_NONE))
+ if (!parse_variables (d
ataset_dict (ds)
, &v, &nv, PV_NONE))
return CMD_FAILURE;
if (token != T_STRING)
return CMD_FAILURE;
if (token != T_STRING)
@@
-61,7
+62,7
@@
cmd_variable_labels (void)
{
if (v[i]->label)
free (v[i]->label);
{
if (v[i]->label)
free (v[i]->label);
- v[i]->label =
xstrdup (ds_c_str (&tokstr)
);
+ v[i]->label =
ds_xstrdup (&tokstr
);
}
lex_get ();
}
lex_get ();