aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn L McGrath <bug1@ihug.co.nz>2001-10-23 17:52:28 +0000
committerGlenn L McGrath <bug1@ihug.co.nz>2001-10-23 17:52:28 +0000
commit6ccdd8c122ea6ccfc1360d19c0066c1037d8ac02 (patch)
tree577bbbe77cca3c88f926cf9d3262971789d2dca8
parentc2e5b977ab85739ae33536b90237a11802abefe5 (diff)
downloadbusybox-w32-6ccdd8c122ea6ccfc1360d19c0066c1037d8ac02.tar.gz
busybox-w32-6ccdd8c122ea6ccfc1360d19c0066c1037d8ac02.tar.bz2
busybox-w32-6ccdd8c122ea6ccfc1360d19c0066c1037d8ac02.zip
Abort if scripts return value != 0
-rw-r--r--archival/dpkg.c13
-rw-r--r--dpkg.c13
2 files changed, 6 insertions, 20 deletions
diff --git a/archival/dpkg.c b/archival/dpkg.c
index d566bfe5b..bf0dcf3c3 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -1232,7 +1232,7 @@ void purge_package(const unsigned int package_num)
1232 char list_name[strlen(package_name) + 25]; 1232 char list_name[strlen(package_name) + 25];
1233 1233
1234 /* run prerm script */ 1234 /* run prerm script */
1235 if (run_package_script(package_name, "prerm") == -1) { 1235 if (run_package_script(package_name, "prerm") != 0) {
1236 error_msg_and_die("script failed, prerm failure"); 1236 error_msg_and_die("script failed, prerm failure");
1237 } 1237 }
1238 1238
@@ -1269,7 +1269,6 @@ void unpack_package(deb_file_t *deb_file)
1269 1269
1270 FILE *out_stream; 1270 FILE *out_stream;
1271 char *info_prefix; 1271 char *info_prefix;
1272 int return_value;
1273 1272
1274 /* If existing version, remove it first */ 1273 /* If existing version, remove it first */
1275 if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) { 1274 if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) {
@@ -1288,11 +1287,7 @@ void unpack_package(deb_file_t *deb_file)
1288 deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL); 1287 deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL);
1289 1288
1290 /* Run the preinst prior to extracting */ 1289 /* Run the preinst prior to extracting */
1291 return_value = run_package_script(package_name, "preinst"); 1290 if (run_package_script(package_name, "preinst") != 0) {
1292 if (return_value == -1) {
1293 error_msg_and_die("could not execute pre-installation script.");
1294 }
1295 if (return_value != 0) {
1296 /* when preinst returns exit code != 0 then quit installation process */ 1291 /* when preinst returns exit code != 0 then quit installation process */
1297 error_msg_and_die("subprocess pre-installation script returned error."); 1292 error_msg_and_die("subprocess pre-installation script returned error.");
1298 } 1293 }
@@ -1318,13 +1313,11 @@ void configure_package(deb_file_t *deb_file)
1318 const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name]; 1313 const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
1319 const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version]; 1314 const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version];
1320 const int status_num = search_status_hashtable(package_name); 1315 const int status_num = search_status_hashtable(package_name);
1321 int return_value;
1322 1316
1323 printf("Setting up %s (%s)\n", package_name, package_version); 1317 printf("Setting up %s (%s)\n", package_name, package_version);
1324 1318
1325 /* Run the postinst script */ 1319 /* Run the postinst script */
1326 return_value = run_package_script(package_name, "postinst"); 1320 if (run_package_script(package_name, "postinst") != 0) {
1327 if (return_value == -1) {
1328 /* TODO: handle failure gracefully */ 1321 /* TODO: handle failure gracefully */
1329 error_msg_and_die("postrm failure.. set status to what?"); 1322 error_msg_and_die("postrm failure.. set status to what?");
1330 } 1323 }
diff --git a/dpkg.c b/dpkg.c
index d566bfe5b..bf0dcf3c3 100644
--- a/dpkg.c
+++ b/dpkg.c
@@ -1232,7 +1232,7 @@ void purge_package(const unsigned int package_num)
1232 char list_name[strlen(package_name) + 25]; 1232 char list_name[strlen(package_name) + 25];
1233 1233
1234 /* run prerm script */ 1234 /* run prerm script */
1235 if (run_package_script(package_name, "prerm") == -1) { 1235 if (run_package_script(package_name, "prerm") != 0) {
1236 error_msg_and_die("script failed, prerm failure"); 1236 error_msg_and_die("script failed, prerm failure");
1237 } 1237 }
1238 1238
@@ -1269,7 +1269,6 @@ void unpack_package(deb_file_t *deb_file)
1269 1269
1270 FILE *out_stream; 1270 FILE *out_stream;
1271 char *info_prefix; 1271 char *info_prefix;
1272 int return_value;
1273 1272
1274 /* If existing version, remove it first */ 1273 /* If existing version, remove it first */
1275 if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) { 1274 if (strcmp(name_hashtable[get_status(status_num, 3)], "installed") == 0) {
@@ -1288,11 +1287,7 @@ void unpack_package(deb_file_t *deb_file)
1288 deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL); 1287 deb_extract(deb_file->filename, stdout, (extract_quiet | extract_control_tar_gz | extract_all_to_fs | extract_unconditional), info_prefix, NULL);
1289 1288
1290 /* Run the preinst prior to extracting */ 1289 /* Run the preinst prior to extracting */
1291 return_value = run_package_script(package_name, "preinst"); 1290 if (run_package_script(package_name, "preinst") != 0) {
1292 if (return_value == -1) {
1293 error_msg_and_die("could not execute pre-installation script.");
1294 }
1295 if (return_value != 0) {
1296 /* when preinst returns exit code != 0 then quit installation process */ 1291 /* when preinst returns exit code != 0 then quit installation process */
1297 error_msg_and_die("subprocess pre-installation script returned error."); 1292 error_msg_and_die("subprocess pre-installation script returned error.");
1298 } 1293 }
@@ -1318,13 +1313,11 @@ void configure_package(deb_file_t *deb_file)
1318 const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name]; 1313 const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
1319 const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version]; 1314 const char *package_version = name_hashtable[package_hashtable[deb_file->package]->version];
1320 const int status_num = search_status_hashtable(package_name); 1315 const int status_num = search_status_hashtable(package_name);
1321 int return_value;
1322 1316
1323 printf("Setting up %s (%s)\n", package_name, package_version); 1317 printf("Setting up %s (%s)\n", package_name, package_version);
1324 1318
1325 /* Run the postinst script */ 1319 /* Run the postinst script */
1326 return_value = run_package_script(package_name, "postinst"); 1320 if (run_package_script(package_name, "postinst") != 0) {
1327 if (return_value == -1) {
1328 /* TODO: handle failure gracefully */ 1321 /* TODO: handle failure gracefully */
1329 error_msg_and_die("postrm failure.. set status to what?"); 1322 error_msg_and_die("postrm failure.. set status to what?");
1330 } 1323 }