void mkdir_p(char *dir)
{
char *parent;
+ char *tmpdir;
if ((dir == NULL) || (!strcmp(dir, ".")))
return;
- parent = strdup(dirname(dir));
+ tmpdir = strdup(dir);
+ if (tmpdir == NULL) {
+ perror("strdup");
+ exit(1);
+ }
+
+ parent = strdup(dirname(tmpdir));
+ free(tmpdir);
if (parent == NULL) {
perror("strdup");
exit(1);