Do not assume that canonicalize_file_name() always returns non-null.
[pspp-builds.git] / src / language / utilities / include.c
index d7b102836e460cf0f05650d201d718b546bb0db5..f3c87779787188ad986e2be99cdb16d335c9354f 100644 (file)
@@ -16,7 +16,9 @@
 
 #include <config.h>
 #include <ctype.h>
+#include <errno.h>
 #include <stdlib.h>
+#include <string.h>
 #include <language/command.h>
 #include <libpspp/message.h>
 #include <libpspp/getl.h>
@@ -192,6 +194,13 @@ parse_insert (struct lexer *lexer, char **filename)
     }
 
   *filename = canonicalize_file_name (relative_filename);
+  if (*filename == NULL) 
+    {
+      msg (SE, _("Unable to open `%s': %s."),
+           relative_filename, strerror (errno));
+      free (relative_filename);
+      return CMD_FAILURE;
+    }
   free (relative_filename);
 
   return CMD_SUCCESS;