172 lines
5.3 KiB
Diff
172 lines
5.3 KiB
Diff
diff -urN bzip2-1.0.6/bzip2.c bzip2-1.0.6/bzip2.c
|
|
--- bzip2-1.0.6/bzip2.c 2010-09-10 19:04:53.000000000 -0400
|
|
+++ bzip2-1.0.6/bzip2.c 2011-05-20 21:22:16.853325100 -0400
|
|
@@ -1132,8 +1132,8 @@
|
|
static
|
|
void compress ( Char *name )
|
|
{
|
|
- FILE *inStr;
|
|
- FILE *outStr;
|
|
+ FILE *inStr = NULL;
|
|
+ FILE *outStr = NULL;
|
|
Int32 n, i;
|
|
struct MY_STAT statBuf;
|
|
|
|
@@ -1313,8 +1313,8 @@
|
|
static
|
|
void uncompress ( Char *name )
|
|
{
|
|
- FILE *inStr;
|
|
- FILE *outStr;
|
|
+ FILE *inStr = NULL;
|
|
+ FILE *outStr = NULL;
|
|
Int32 n, i;
|
|
Bool magicNumberOK;
|
|
Bool cantGuess;
|
|
@@ -1511,7 +1511,7 @@
|
|
static
|
|
void testf ( Char *name )
|
|
{
|
|
- FILE *inStr;
|
|
+ FILE *inStr = NULL;
|
|
Bool allOK;
|
|
struct MY_STAT statBuf;
|
|
|
|
diff -urN bzip2-1.0.6/bzip2recover.c bzip2-1.0.6/bzip2recover.c
|
|
--- bzip2-1.0.6/bzip2recover.c 2010-09-10 19:18:40.000000000 -0400
|
|
+++ bzip2-1.0.6/bzip2recover.c 2011-05-20 21:21:39.518325100 -0400
|
|
@@ -24,6 +24,8 @@
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
+#include <fcntl.h>
|
|
+#include <unistd.h>
|
|
|
|
|
|
/* This program records bit locations in the file to be recovered.
|
|
@@ -269,6 +271,19 @@
|
|
name[n-1] == '2');
|
|
}
|
|
|
|
+/*---------------------------------------------*/
|
|
+/* Open an output file safely with O_EXCL and good permissions */
|
|
+FILE* fopen_output( Char* name, const char* mode )
|
|
+{
|
|
+ FILE *fp;
|
|
+ int fh;
|
|
+
|
|
+ fh = open(name, O_WRONLY|O_CREAT|O_EXCL, 0600);
|
|
+ if (fh == -1) return NULL;
|
|
+ fp = fdopen(fh, mode);
|
|
+ if (fp == NULL) close(fh);
|
|
+ return fp;
|
|
+}
|
|
|
|
/*---------------------------------------------------*/
|
|
/*--- ---*/
|
|
@@ -306,6 +321,7 @@
|
|
Int32 b, wrBlock, currBlock, rbCtr;
|
|
MaybeUInt64 bitsRead;
|
|
|
|
+
|
|
UInt32 buffHi, buffLo, blockCRC;
|
|
Char* p;
|
|
|
|
@@ -486,7 +502,7 @@
|
|
fprintf ( stderr, " writing block %d to `%s' ...\n",
|
|
wrBlock+1, outFileName );
|
|
|
|
- outFile = fopen ( outFileName, "wb" );
|
|
+ outFile = fopen_output ( outFileName, "wb" );
|
|
if (outFile == NULL) {
|
|
fprintf ( stderr, "%s: can't write `%s'\n",
|
|
progName, outFileName );
|
|
diff -urN bzip2-1.0.6/bzlib.c bzip2-1.0.6/bzlib.c
|
|
--- bzip2-1.0.6/bzlib.c 2010-09-10 18:38:23.000000000 -0400
|
|
+++ bzip2-1.0.6/bzlib.c 2011-05-20 21:21:39.524325100 -0400
|
|
@@ -1372,7 +1372,7 @@
|
|
#ifndef BZ_NO_STDIO
|
|
/*---------------------------------------------------*/
|
|
|
|
-#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
|
|
+#if defined(_WIN32) || defined(OS2) || defined(MSDOS) || defined(__CYGWIN__)
|
|
# include <fcntl.h>
|
|
# include <io.h>
|
|
# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
|
|
diff -urN bzip2-1.0.6/bzlib.h bzip2-1.0.6/bzlib.h
|
|
--- bzip2-1.0.6/bzlib.h 2010-09-10 19:08:42.000000000 -0400
|
|
+++ bzip2-1.0.6/bzlib.h 2011-05-20 22:38:02.807325100 -0400
|
|
@@ -75,21 +75,39 @@
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
-#ifdef _WIN32
|
|
+#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
# include <windows.h>
|
|
# ifdef small
|
|
/* windows.h define small to char */
|
|
# undef small
|
|
# endif
|
|
-# ifdef BZ_EXPORT
|
|
-# define BZ_API(func) WINAPI func
|
|
-# define BZ_EXTERN extern
|
|
+# ifndef __GNUC__
|
|
+ /* Use these rules only for non-gcc native win32 */
|
|
+# ifdef BZ_EXPORT
|
|
+# define BZ_API(func) WINAPI func
|
|
+# define BZ_EXTERN extern
|
|
+# else
|
|
+ /* import windows dll dynamically */
|
|
+# define BZ_API(func) (WINAPI * func)
|
|
+# define BZ_EXTERN
|
|
+# endif
|
|
# else
|
|
- /* import windows dll dynamically */
|
|
-# define BZ_API(func) (WINAPI * func)
|
|
-# define BZ_EXTERN
|
|
+ /* For gcc on native win32, use import library trampoline */
|
|
+ /* functions on DLL import. This avoids requiring clients to */
|
|
+ /* use special compilation flags depending on whether eventual */
|
|
+ /* link will be against static libbz2 or against DLL, at the */
|
|
+ /* expense of a small loss of efficiency. */
|
|
+
|
|
+ /* Because libbz2 does not export any DATA items, GNU ld's */
|
|
+ /* "auto-import" is not a factor; the MinGW-built DLL can be */
|
|
+ /* used by other compilers, provided an import library suitable */
|
|
+ /* for that compiler is (manually) constructed using the .def */
|
|
+ /* file and the appropriate tool. */
|
|
+# define BZ_API(func) func
|
|
+# define BZ_EXTERN extern
|
|
# endif
|
|
#else
|
|
+ /* non-win32 platforms, and cygwin */
|
|
# define BZ_API(func) func
|
|
# define BZ_EXTERN extern
|
|
#endif
|
|
diff -urN bzip2-1.0.6/bzmore bzip2-1.0.6/bzmore
|
|
--- bzip2-1.0.6/bzmore 2007-01-02 21:00:55.000000000 -0500
|
|
+++ bzip2-1.0.6/bzmore 2011-05-20 21:21:39.540325100 -0400
|
|
@@ -24,10 +24,10 @@
|
|
# 'stty min 1' resets eof to ^a on both SunOS and SysV!
|
|
cb='min 1 -icanon'; ncb='icanon eof ^d'
|
|
fi
|
|
-if test $? -eq 0 -a -n "$oldtty"; then
|
|
- trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15
|
|
+if test $? -eq 0 && test -n "$oldtty"; then
|
|
+ trap 'stty $oldtty 2>/dev/null; exit' 0 INT QUIT TRAP USR1 PIPE TERM
|
|
else
|
|
- trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15
|
|
+ trap 'stty $ncb echo 2>/dev/null; exit' 0 INT QUIT TRAP USR1 PIPE TERM
|
|
fi
|
|
|
|
if test $# = 0; then
|
|
@@ -46,7 +46,7 @@
|
|
ANS=`dd bs=1 count=1 2>/dev/null`
|
|
stty $ncb echo 2>/dev/null
|
|
echo " "
|
|
- if test "$ANS" = 'e' -o "$ANS" = 'q'; then
|
|
+ if test "$ANS" = 'e' || test "$ANS" = 'q'; then
|
|
exit
|
|
fi
|
|
fi
|