Abort if scripts return value != 0
This commit is contained in:
parent
c2e5b977ab
commit
6ccdd8c122
@ -1232,7 +1232,7 @@ void purge_package(const unsigned int package_num)
|
|||||||
char list_name[strlen(package_name) + 25];
|
char list_name[strlen(package_name) + 25];
|
||||||
|
|
||||||
/* run prerm script */
|
/* run prerm script */
|
||||||
if (run_package_script(package_name, "prerm") == -1) {
|
if (run_package_script(package_name, "prerm") != 0) {
|
||||||
error_msg_and_die("script failed, prerm failure");
|
error_msg_and_die("script failed, prerm failure");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1269,7 +1269,6 @@ void unpack_package(deb_file_t *deb_file)
|
|||||||
|
|
||||||
FILE *out_stream;
|
FILE *out_stream;
|
||||||
char *info_prefix;
|
char *info_prefix;
|
||||||
int return_value;
|
|
||||||
|
|
||||||
/* If existing version, remove it first */
|
/* If existing version, remove it first */
|
||||||
if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) {
|
if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) {
|
||||||
@ -1288,11 +1287,7 @@ void unpack_package(deb_file_t *deb_file)
|
|||||||
deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL);
|
deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL);
|
||||||
|
|
||||||
/* Run the preinst prior to extracting */
|
/* Run the preinst prior to extracting */
|
||||||
return_value = run_package_script(package_name, "preinst");
|
if (run_package_script(package_name, "preinst") != 0) {
|
||||||
if (return_value == -1) {
|
|
||||||
error_msg_and_die("could not execute pre-installation script.");
|
|
||||||
}
|
|
||||||
if (return_value != 0) {
|
|
||||||
/* when preinst returns exit code != 0 then quit installation process */
|
/* when preinst returns exit code != 0 then quit installation process */
|
||||||
error_msg_and_die("subprocess pre-installation script returned error.");
|
error_msg_and_die("subprocess pre-installation script returned error.");
|
||||||
}
|
}
|
||||||
@ -1318,13 +1313,11 @@ void configure_package(deb_file_t *deb_file)
|
|||||||
const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
|
const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
|
||||||
const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version];
|
const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version];
|
||||||
const int status_num = search_status_hashtable(package_name);
|
const int status_num = search_status_hashtable(package_name);
|
||||||
int return_value;
|
|
||||||
|
|
||||||
printf("Setting up %s (%s)\n", package_name, package_version);
|
printf("Setting up %s (%s)\n", package_name, package_version);
|
||||||
|
|
||||||
/* Run the postinst script */
|
/* Run the postinst script */
|
||||||
return_value = run_package_script(package_name, "postinst");
|
if (run_package_script(package_name, "postinst") != 0) {
|
||||||
if (return_value == -1) {
|
|
||||||
/* TODO: handle failure gracefully */
|
/* TODO: handle failure gracefully */
|
||||||
error_msg_and_die("postrm failure.. set status to what?");
|
error_msg_and_die("postrm failure.. set status to what?");
|
||||||
}
|
}
|
||||||
|
13
dpkg.c
13
dpkg.c
@ -1232,7 +1232,7 @@ void purge_package(const unsigned int package_num)
|
|||||||
char list_name[strlen(package_name) + 25];
|
char list_name[strlen(package_name) + 25];
|
||||||
|
|
||||||
/* run prerm script */
|
/* run prerm script */
|
||||||
if (run_package_script(package_name, "prerm") == -1) {
|
if (run_package_script(package_name, "prerm") != 0) {
|
||||||
error_msg_and_die("script failed, prerm failure");
|
error_msg_and_die("script failed, prerm failure");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1269,7 +1269,6 @@ void unpack_package(deb_file_t *deb_file)
|
|||||||
|
|
||||||
FILE *out_stream;
|
FILE *out_stream;
|
||||||
char *info_prefix;
|
char *info_prefix;
|
||||||
int return_value;
|
|
||||||
|
|
||||||
/* If existing version, remove it first */
|
/* If existing version, remove it first */
|
||||||
if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) {
|
if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) {
|
||||||
@ -1288,11 +1287,7 @@ void unpack_package(deb_file_t *deb_file)
|
|||||||
deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL);
|
deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL);
|
||||||
|
|
||||||
/* Run the preinst prior to extracting */
|
/* Run the preinst prior to extracting */
|
||||||
return_value = run_package_script(package_name, "preinst");
|
if (run_package_script(package_name, "preinst") != 0) {
|
||||||
if (return_value == -1) {
|
|
||||||
error_msg_and_die("could not execute pre-installation script.");
|
|
||||||
}
|
|
||||||
if (return_value != 0) {
|
|
||||||
/* when preinst returns exit code != 0 then quit installation process */
|
/* when preinst returns exit code != 0 then quit installation process */
|
||||||
error_msg_and_die("subprocess pre-installation script returned error.");
|
error_msg_and_die("subprocess pre-installation script returned error.");
|
||||||
}
|
}
|
||||||
@ -1318,13 +1313,11 @@ void configure_package(deb_file_t *deb_file)
|
|||||||
const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
|
const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
|
||||||
const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version];
|
const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version];
|
||||||
const int status_num = search_status_hashtable(package_name);
|
const int status_num = search_status_hashtable(package_name);
|
||||||
int return_value;
|
|
||||||
|
|
||||||
printf("Setting up %s (%s)\n", package_name, package_version);
|
printf("Setting up %s (%s)\n", package_name, package_version);
|
||||||
|
|
||||||
/* Run the postinst script */
|
/* Run the postinst script */
|
||||||
return_value = run_package_script(package_name, "postinst");
|
if (run_package_script(package_name, "postinst") != 0) {
|
||||||
if (return_value == -1) {
|
|
||||||
/* TODO: handle failure gracefully */
|
/* TODO: handle failure gracefully */
|
||||||
error_msg_and_die("postrm failure.. set status to what?");
|
error_msg_and_die("postrm failure.. set status to what?");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user