blob: 78c2b64453707d051c797a6911a3ac7399c7a174 [file] [log] [blame] [edit]
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