canonicalize: reduce memory usage
[pspp] / lib / canonicalize.c
index 2f008e0689a369f1486113704765ce1fc18a4707..612a0d0fec007a291dccb8c6238ec15333de576b 100644 (file)
@@ -272,6 +272,8 @@ canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)
   if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && *dest == '/')
     dest++;
   *dest = '\0';
+  if (rname_limit != dest + 1)
+    rname = xrealloc (rname, dest - rname + 1);
 
   free (extra_buf);
   if (ht)