diff options
| -rw-r--r-- | bzip2.c | 40 |
1 files changed, 24 insertions, 16 deletions
| @@ -815,10 +815,9 @@ void mySignalCatcher ( IntNative n ) | |||
| 815 | static | 815 | static |
| 816 | void mySIGSEGVorSIGBUScatcher ( IntNative n ) | 816 | void mySIGSEGVorSIGBUScatcher ( IntNative n ) |
| 817 | { | 817 | { |
| 818 | const char *msg; | ||
| 818 | if (opMode == OM_Z) | 819 | if (opMode == OM_Z) |
| 819 | fprintf ( | 820 | msg = ": Caught a SIGSEGV or SIGBUS whilst compressing.\n" |
| 820 | stderr, | ||
| 821 | "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n" | ||
| 822 | "\n" | 821 | "\n" |
| 823 | " Possible causes are (most likely first):\n" | 822 | " Possible causes are (most likely first):\n" |
| 824 | " (1) This computer has unreliable memory or cache hardware\n" | 823 | " (1) This computer has unreliable memory or cache hardware\n" |
| @@ -834,12 +833,9 @@ void mySIGSEGVorSIGBUScatcher ( IntNative n ) | |||
| 834 | " bug report should have. If the manual is available on your\n" | 833 | " bug report should have. If the manual is available on your\n" |
| 835 | " system, please try and read it before mailing me. If you don't\n" | 834 | " system, please try and read it before mailing me. If you don't\n" |
| 836 | " have the manual or can't be bothered to read it, mail me anyway.\n" | 835 | " have the manual or can't be bothered to read it, mail me anyway.\n" |
| 837 | "\n", | 836 | "\n"; |
| 838 | progName ); | 837 | else |
| 839 | else | 838 | msg = ": Caught a SIGSEGV or SIGBUS whilst decompressing.\n" |
| 840 | fprintf ( | ||
| 841 | stderr, | ||
| 842 | "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n" | ||
| 843 | "\n" | 839 | "\n" |
| 844 | " Possible causes are (most likely first):\n" | 840 | " Possible causes are (most likely first):\n" |
| 845 | " (1) The compressed data is corrupted, and bzip2's usual checks\n" | 841 | " (1) The compressed data is corrupted, and bzip2's usual checks\n" |
| @@ -857,13 +853,25 @@ void mySIGSEGVorSIGBUScatcher ( IntNative n ) | |||
| 857 | " bug report should have. If the manual is available on your\n" | 853 | " bug report should have. If the manual is available on your\n" |
| 858 | " system, please try and read it before mailing me. If you don't\n" | 854 | " system, please try and read it before mailing me. If you don't\n" |
| 859 | " have the manual or can't be bothered to read it, mail me anyway.\n" | 855 | " have the manual or can't be bothered to read it, mail me anyway.\n" |
| 860 | "\n", | 856 | "\n"; |
| 861 | progName ); | 857 | write ( STDERR_FILENO, "\n", 1 ); |
| 862 | 858 | write ( STDERR_FILENO, progName, strlen ( progName ) ); | |
| 863 | showFileNames(); | 859 | write ( STDERR_FILENO, msg, strlen ( msg ) ); |
| 864 | if (opMode == OM_Z) | 860 | |
| 865 | cleanUpAndFail( 3 ); else | 861 | msg = "\tInput file = "; |
| 866 | { cadvise(); cleanUpAndFail( 2 ); } | 862 | write ( STDERR_FILENO, msg, strlen (msg) ); |
| 863 | write ( STDERR_FILENO, inName, strlen (inName) ); | ||
| 864 | write ( STDERR_FILENO, "\n", 1 ); | ||
| 865 | msg = "\tOutput file = "; | ||
| 866 | write ( STDERR_FILENO, msg, strlen (msg) ); | ||
| 867 | write ( STDERR_FILENO, outName, strlen (outName) ); | ||
| 868 | write ( STDERR_FILENO, "\n", 1 ); | ||
| 869 | |||
| 870 | /* Don't call cleanupAndFail. If we ended up here something went | ||
| 871 | terribly wrong. Trying to clean up might fail spectacularly. */ | ||
| 872 | |||
| 873 | if (opMode == OM_Z) setExit(3); else setExit(2); | ||
| 874 | _exit(exitValue); | ||
| 867 | } | 875 | } |
| 868 | 876 | ||
| 869 | 877 | ||
