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-display.c
diff --git
a/src/language/dictionary/variable-display.c
b/src/language/dictionary/variable-display.c
index c1b6e1e7b847a29f447cac84ab50864666649d37..fa6eae467f152ac944e691c4a0e29f43776c8ce7 100644
(file)
--- a/
src/language/dictionary/variable-display.c
+++ b/
src/language/dictionary/variable-display.c
@@
-18,23
+18,25
@@
02110-1301, USA. */
#include <config.h>
02110-1301, USA. */
#include <config.h>
+
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
-#include <libpspp/alloc.h>
+
+#include <data/procedure.h>
+#include <data/variable.h>
#include <language/command.h>
#include <language/command.h>
-#include <libpspp/message.h>
#include <language/lexer/lexer.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/str.h>
-#include <data/variable.h>
-
-#include <libpspp/debug-print.h>
/* Set variables' alignment
This is the alignment for GUI display only.
It affects nothing but GUIs
*/
int
/* Set variables' alignment
This is the alignment for GUI display only.
It affects nothing but GUIs
*/
int
-cmd_variable_alignment (
void
)
+cmd_variable_alignment (
struct dataset *ds
)
{
do
{
{
do
{
@@
-44,9
+46,8
@@
cmd_variable_alignment (void)
size_t i;
enum alignment align;
size_t i;
enum alignment align;
-
- if (!parse_variables (default_dict, &v, &nv, PV_NONE))
- return CMD_PART_SUCCESS_MAYBE;
+ if (!parse_variables (dataset_dict (ds), &v, &nv, PV_NONE))
+ return CMD_FAILURE;
if ( lex_force_match('(') )
{
if ( lex_force_match('(') )
{
@@
-88,7
+89,7
@@
cmd_variable_alignment (void)
It affects nothing but GUIs
*/
int
It affects nothing but GUIs
*/
int
-cmd_variable_width (
void
)
+cmd_variable_width (
struct dataset *ds
)
{
do
{
{
do
{
@@
-96,8
+97,8
@@
cmd_variable_width (void)
size_t nv;
size_t i;
size_t nv;
size_t i;
- if (!parse_variables (d
efault_dict
, &v, &nv, PV_NONE))
- return CMD_
PART_SUCCESS_MAYB
E;
+ if (!parse_variables (d
ataset_dict (ds)
, &v, &nv, PV_NONE))
+ return CMD_
FAILUR
E;
if ( lex_force_match('(') )
{
if ( lex_force_match('(') )
{
@@
-122,7
+123,7
@@
cmd_variable_width (void)
/* Set variables' measurement level */
int
/* Set variables' measurement level */
int
-cmd_variable_level (
void
)
+cmd_variable_level (
struct dataset *ds
)
{
do
{
{
do
{
@@
-131,8
+132,8
@@
cmd_variable_level (void)
enum measure level;
size_t i;
enum measure level;
size_t i;
- if (!parse_variables (d
efault_dict
, &v, &nv, PV_NONE))
- return CMD_
PART_SUCCESS_MAYB
E;
+ if (!parse_variables (d
ataset_dict (ds)
, &v, &nv, PV_NONE))
+ return CMD_
FAILUR
E;
if ( lex_force_match('(') )
{
if ( lex_force_match('(') )
{