dpkg: fix bug where existence check was reversed

This commit is contained in:
Denis Vlasenko 2008-02-17 14:29:25 +00:00
parent cb448fe01b
commit b3b0753593

View File

@ -913,20 +913,16 @@ static void write_status_file(deb_file_t **deb_file)
fclose(old_status_file); fclose(old_status_file);
fclose(new_status_file); fclose(new_status_file);
/* Create a separate backfile to dpkg */ /* Create a separate backfile to dpkg */
if (rename("/var/lib/dpkg/status", "/var/lib/dpkg/status.udeb.bak") == -1) { if (rename("/var/lib/dpkg/status", "/var/lib/dpkg/status.udeb.bak") == -1) {
struct stat stat_buf; if (errno != ENOENT)
xstat("/var/lib/dpkg/status", &stat_buf); bb_error_msg_and_die("cannot create backup status file");
/* Its ok if renaming the status file fails because status /* Its ok if renaming the status file fails because status
* file doesnt exist, maybe we are starting from scratch */ * file doesnt exist, maybe we are starting from scratch */
bb_error_msg("no status file found, creating new one"); bb_error_msg("no status file found, creating new one");
} }
if (rename("/var/lib/dpkg/status.udeb", "/var/lib/dpkg/status") == -1) { xrename("/var/lib/dpkg/status.udeb", "/var/lib/dpkg/status");
bb_error_msg_and_die("DANGER: cannot create status file, "
"you need to manually repair your status file");
}
} }
/* This function returns TRUE if the given package can satisfy a /* This function returns TRUE if the given package can satisfy a
@ -1344,7 +1340,7 @@ static void remove_package(const unsigned package_num, int noisy)
free_array(exclude_files); free_array(exclude_files);
/* rename <package>.conffile to <package>.list */ /* rename <package>.conffile to <package>.list */
rename(conffile_name, list_name); xrename(conffile_name, list_name);
/* Change package status */ /* Change package status */
set_status(status_num, "config-files", 3); set_status(status_num, "config-files", 3);