← Commit list

b3b075359

Denis Vlasenko
Denis Vlasenko
2008-02-17
FAILED Duration: 18s

Subject

dpkg: fix bug where existence check was reversed

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

archival/dpkg.c+4 -8
@@ -913,20 +913,16 @@ static void write_status_file(deb_file_t **deb_file)
fclose(old_status_file);
fclose(new_status_file);
-
/* Create a separate backfile to dpkg */
if (rename("/var/lib/dpkg/status", "/var/lib/dpkg/status.udeb.bak") == -1) {
- struct stat stat_buf;
- xstat("/var/lib/dpkg/status", &stat_buf);
+ if (errno != ENOENT)
+ bb_error_msg_and_die("cannot create backup status file");
/* Its ok if renaming the status file fails because status
* file doesnt exist, maybe we are starting from scratch */
bb_error_msg("no status file found, creating new one");
}
- if (rename("/var/lib/dpkg/status.udeb", "/var/lib/dpkg/status") == -1) {
- bb_error_msg_and_die("DANGER: cannot create status file, "
- "you need to manually repair your status file");
- }
+ xrename("/var/lib/dpkg/status.udeb", "/var/lib/dpkg/status");
}
/* 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);
/* rename <package>.conffile to <package>.list */
- rename(conffile_name, list_name);
+ xrename(conffile_name, list_name);
/* Change package status */
set_status(status_num, "config-files", 3);