"a DOS special file",
tuklib_mask_nonprint(
pair->dest_name));
- free(pair->dest_name);
- return true;
+ goto error;
}
// Check that we aren't overwriting the source file.
"as the input file",
tuklib_mask_nonprint(
pair->dest_name));
- free(pair->dest_name);
- return true;
+ goto error;
}
}
#endif
message_error(_("%s: Cannot remove: %s"),
tuklib_mask_nonprint(pair->dest_name),
strerror(errno));
- free(pair->dest_name);
- return true;
+ goto error;
}
// Open the file.
message_error(_("%s: %s"),
tuklib_mask_nonprint(pair->dest_name),
strerror(errno));
- free(pair->dest_name);
- return true;
+ goto error;
}
}
// dest_fd needs to be reset to -1 to keep io_close() working.
(void)close(pair->dest_fd);
pair->dest_fd = -1;
-
- free(pair->dest_name);
- return true;
+ goto error;
}
#elif !defined(TUKLIB_DOSLIKE)
else if (try_sparse && opt_mode == MODE_DECOMPRESS) {
#endif
return false;
+
+error:
+ free(pair->dest_name);
+ return true;
}