pspp-dump-sav: Fix memory leaks.
[pspp] / src / language / utilities / include.c
index a05456e2a2e8ff7366556865d1eb1e40b023f239..ecb33b27670826fd8fa7ae25f1bf435b09ed0f13 100644 (file)
@@ -23,7 +23,6 @@
 #include <unistd.h>
 
 #include "data/dataset.h"
-#include "data/file-name.h"
 #include "data/session.h"
 #include "language/command.h"
 #include "language/lexer/include-path.h"
@@ -62,7 +61,10 @@ do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
   if (!lex_force_string_or_id (lexer))
     return CMD_FAILURE;
 
-  relative_name = utf8_to_filename (lex_tokcstr (lexer)); 
+  relative_name = utf8_to_filename (lex_tokcstr (lexer));
+  if (NULL == relative_name)
+    return CMD_FAILURE;
+
   filename = include_path_search (relative_name);
   free (relative_name);
 
@@ -90,6 +92,7 @@ do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
 
           free (encoding);
           encoding = xstrdup (lex_tokcstr (lexer));
+         lex_get (lexer);
         }
       else if (variant == INSERT && lex_match_id (lexer, "SYNTAX"))
        {