From: David Quintana Date: Mon, 24 Jul 2017 18:37:25 +0000 (+0000) Subject: [CABMAN] X-Git-Tag: ReactOS-0.4.6~42 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=b0469b922702c3bd2e7c212442d8241e1d75cead [CABMAN] Fix pointer math ('unsigned long' will truncate the pointer). [MKISOFS/SCHILY TOOLS] Fix the invalid assumption that a 'long' variable can hold pointers. Will be sent upstream. With this the whole of reactos and rostests builds on x64. Rosapps still has issues. svn path=/trunk/; revision=75399 --- diff --git a/reactos/sdk/tools/cabman/mszip.cxx b/reactos/sdk/tools/cabman/mszip.cxx index 159dee22daf..acb9ba02b85 100644 --- a/reactos/sdk/tools/cabman/mszip.cxx +++ b/reactos/sdk/tools/cabman/mszip.cxx @@ -74,7 +74,7 @@ ULONG CMSZipCodec::Compress(void* OutputBuffer, ZStream.next_in = (unsigned char*)InputBuffer; ZStream.avail_in = InputLength; - ZStream.next_out = (unsigned char*)((unsigned long)OutputBuffer + 2); + ZStream.next_out = ((unsigned char *)OutputBuffer + 2); ZStream.avail_out = CAB_BLOCKSIZE + 12; /* WindowBits is passed < 0 to tell that there is no zlib header */ @@ -137,7 +137,7 @@ ULONG CMSZipCodec::Uncompress(void* OutputBuffer, return CS_BADSTREAM; } - ZStream.next_in = (unsigned char*)((unsigned long)InputBuffer + 2); + ZStream.next_in = ((unsigned char*)InputBuffer + 2); ZStream.avail_in = InputLength - 2; ZStream.next_out = (unsigned char*)OutputBuffer; ZStream.avail_out = CAB_BLOCKSIZE + 12; diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h index d48abbeeb1b..3f94439553e 100644 --- a/reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h +++ b/reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h @@ -47,6 +47,9 @@ #ifndef _SCHILY_CCOMDEFS_H #include #endif +#ifndef _SCHILY_STDINT_H +#include +#endif #ifdef __cplusplus extern "C" { @@ -464,12 +467,12 @@ extern size_t wcslcatl __PR((wchar_t *, size_t, ...)); extern int wcseql __PR((const wchar_t *, const wchar_t *)); #endif #ifdef va_arg -extern int format __PR((void (*)(char, long), long, const char *, +extern int format __PR((void (*)(char, intptr_t), intptr_t, const char *, va_list)); -extern int fprformat __PR((long, const char *, va_list)); +extern int fprformat __PR((intptr_t, const char *, va_list)); #else -extern int format __PR((void (*)(char, long), long, const char *, void *)); -extern int fprformat __PR((long, const char *, void *)); +extern int format __PR((void (*)(char, intptr_t), intptr_t, const char *, void *)); +extern int fprformat __PR((intptr_t, const char *, void *)); #endif extern int ftoes __PR((char *, double, int, int)); diff --git a/reactos/sdk/tools/mkisofs/schilytools/libschily/format.c b/reactos/sdk/tools/mkisofs/schilytools/libschily/format.c index ca98ba0d381..62aa138ea03 100644 --- a/reactos/sdk/tools/mkisofs/schilytools/libschily/format.c +++ b/reactos/sdk/tools/mkisofs/schilytools/libschily/format.c @@ -138,9 +138,9 @@ typedef struct f_args { char *ptr; /* Current ptr in buf */ int cnt; /* Free char count in buf */ #else - void (*outf)__PR((char, long)); /* Func from format(fun, arg) */ + void (*outf)__PR((char, intptr_t)); /* Func from format(fun, arg) */ #endif - long farg; /* Arg from format (fun, arg) */ + intptr_t farg; /* Arg from format (fun, arg) */ int minusflag; /* Fieldwidth is negative */ int flags; /* General flags (+-#) */ int fldwidth; /* Field width as in %3d */ @@ -227,7 +227,7 @@ xflsbuf(c, ap) #define FORMAT_FUNC_NAME format #define FORMAT_FUNC_PARM -#define FORMAT_FUNC_PROTO_DECL void (*fun)(char, long), +#define FORMAT_FUNC_PROTO_DECL void (*fun)(char, intptr_t), #define FORMAT_FUNC_KR_DECL register void (*fun)(); #define FORMAT_FUNC_KR_ARGS fun, @@ -243,14 +243,14 @@ xflsbuf(c, ap) #ifdef PROTOTYPES EXPORT int FORMAT_FUNC_NAME(FORMAT_FUNC_PROTO_DECL - long farg, + intptr_t farg, const char *fmt, va_list oargs) #else EXPORT int FORMAT_FUNC_NAME(FORMAT_FUNC_KR_ARGS farg, fmt, oargs) FORMAT_FUNC_KR_DECL - register long farg; + register intptr_t farg; register char *fmt; va_list oargs; #endif @@ -292,7 +292,7 @@ FORMAT_FUNC_NAME(FORMAT_FUNC_KR_ARGS farg, fmt, oargs) fa.ptr = fa.iobuf; fa.fp = (FILE *)farg; fa.err = 0; - farg = fa.farg = (long)&fa; + farg = fa.farg = (intptr_t)&fa; } else { /* recursion */ farg &= ~1; } @@ -1023,7 +1023,7 @@ error sizeof (ptrdiff_t) is unknown } out: #ifdef FORMAT_BUFFER - if (farg == (long)&fa) { /* Top level call, flush buffer */ + if (farg == (intptr_t)&fa) { /* Top level call, flush buffer */ if (fa.err) return (EOF); if ((fa.ptr != fa.iobuf) && @@ -1208,9 +1208,9 @@ prbuf(s, fa) { register int diff; register int rfillc; - register long arg = fa->farg; + register intptr_t arg = fa->farg; #ifdef FORMAT_FUNC_PARM - register void (*fun) __PR((char, long)) = fa->outf; + register void (*fun) __PR((char, intptr_t)) = fa->outf; #endif register int count; register int lzero = 0; @@ -1274,9 +1274,9 @@ prc(c, fa) { register int diff; register int rfillc; - register long arg = fa->farg; + register intptr_t arg = fa->farg; #ifdef FORMAT_FUNC_PARM - register void (*fun) __PR((char, long)) = fa->outf; + register void (*fun) __PR((char, intptr_t)) = fa->outf; #endif register int count; diff --git a/reactos/sdk/tools/mkisofs/schilytools/libschily/jsprintf.c b/reactos/sdk/tools/mkisofs/schilytools/libschily/jsprintf.c index e9192aa78a7..da9b1a01406 100644 --- a/reactos/sdk/tools/mkisofs/schilytools/libschily/jsprintf.c +++ b/reactos/sdk/tools/mkisofs/schilytools/libschily/jsprintf.c @@ -57,7 +57,7 @@ js_printf(form, va_alist) #else va_start(args); #endif - ret = fprformat((long)stdout, form, args); + ret = fprformat((intptr_t)stdout, form, args); va_end(args); return (ret); } @@ -82,7 +82,7 @@ js_fprintf(file, form, va_alist) #else va_start(args); #endif - ret = fprformat((long)file, form, args); + ret = fprformat((intptr_t)file, form, args); va_end(args); return (ret); } @@ -103,7 +103,7 @@ typedef struct { } *BUF, _BUF; LOCAL void _bflush __PR((BUF)); -LOCAL void _bput __PR((char, long)); +LOCAL void _bput __PR((char, intptr_t)); EXPORT int js_fprintf __PR((FILE *, const char *, ...)); EXPORT int js_printf __PR((const char *, ...)); @@ -120,12 +120,12 @@ _bflush(bp) #ifdef PROTOTYPES LOCAL void -_bput(char c, long l) +_bput(char c, intptr_t l) #else LOCAL void _bput(c, l) char c; - long l; + intptr_t l; #endif { register BUF bp = (BUF)l; @@ -158,7 +158,7 @@ js_printf(form, va_alist) #else va_start(args); #endif - format(_bput, (long)&bb, form, args); + format(_bput, (intptr_t)&bb, form, args); va_end(args); if (bb.cnt < BFSIZ) _bflush(&bb); @@ -189,7 +189,7 @@ js_fprintf(file, form, va_alist) #else va_start(args); #endif - format(_bput, (long)&bb, form, args); + format(_bput, (intptr_t)&bb, form, args); va_end(args); if (bb.cnt < BFSIZ) _bflush(&bb); diff --git a/reactos/sdk/tools/mkisofs/schilytools/libschily/jssnprintf.c b/reactos/sdk/tools/mkisofs/schilytools/libschily/jssnprintf.c index 37f756e6a8f..80c71d69e3d 100644 --- a/reactos/sdk/tools/mkisofs/schilytools/libschily/jssnprintf.c +++ b/reactos/sdk/tools/mkisofs/schilytools/libschily/jssnprintf.c @@ -33,12 +33,12 @@ typedef struct { #ifdef PROTOTYPES static void -_cput(char c, long l) +_cput(char c, intptr_t l) #else static void _cput(c, l) char c; - long l; + intptr_t l; #endif { register BUF bp = (BUF)l; @@ -78,7 +78,7 @@ js_snprintf(buf, maxcnt, form, va_alist) #else va_start(args); #endif - cnt = format(_cput, (long)&bb, form, args); + cnt = format(_cput, (intptr_t)&bb, form, args); va_end(args); if (maxcnt > 0) *(bb.ptr) = '\0';