rpms/prboom/FC-4 prboom-2.3.1-fixpsnprintf.patch, NONE, 1.1 prboom-2.3.1-gcc4.patch, 1.1, 1.2 prboom.spec, 1.1, 1.2
Michael Thomas (wart)
fedora-extras-commits at redhat.com
Sun Mar 19 07:02:27 UTC 2006
Author: wart
Update of /cvs/extras/rpms/prboom/FC-4
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19590
Modified Files:
prboom-2.3.1-gcc4.patch prboom.spec
Added Files:
prboom-2.3.1-fixpsnprintf.patch
Log Message:
Fix segfault on i386 (BZ #185741)
prboom-2.3.1-fixpsnprintf.patch:
--- NEW FILE prboom-2.3.1-fixpsnprintf.patch ---
diff -Naur prboom-2.3.1/src/psnprntf.c prboom-2.3.1.new/src/psnprntf.c
--- prboom-2.3.1/src/psnprntf.c 2004-09-24 11:27:36.000000000 -0700
+++ prboom-2.3.1.new/src/psnprntf.c 2006-03-18 09:04:48.000000000 -0800
@@ -130,7 +130,7 @@
case 'X': \
case 'p': \
GET_VARS \
- ncount += pvsnfmt_int(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
+ ncount += pvsnfmt_int(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, (*pfmt == 'p' || prefix == 'l')? va_arg(ap, unsigned long):va_arg(ap, int)); \
state = STATE_NONE; \
break; \
case 'e': \
@@ -139,17 +139,17 @@
case 'g': \
case 'G': \
GET_VARS \
- ncount += pvsnfmt_double(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
+ ncount += pvsnfmt_double(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, va_arg(ap, double)); \
state = STATE_NONE; \
break; \
case 'c': \
GET_VARS \
- ncount += pvsnfmt_char(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
+ ncount += pvsnfmt_char(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, va_arg(ap, int)); \
state = STATE_NONE; \
break; \
case 's': \
GET_VARS \
- ncount += pvsnfmt_str(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
+ ncount += pvsnfmt_str(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, va_arg(ap, char *)); \
state = STATE_NONE; \
break; \
case 'n': \
@@ -306,11 +306,11 @@
}
int pvsnfmt_char(char **pinsertion, size_t *nmax, const char fmt, int flags,
- int width, int precision, char prefix, va_list *ap)
+ int width, int precision, char prefix, int arg)
{
if (*nmax > 1)
{
- **pinsertion = (char) va_arg(*ap, int);
+ **pinsertion = (char) arg;
*pinsertion += 1;
*nmax -= 1;
}
@@ -338,9 +338,8 @@
*/
int pvsnfmt_str(char **pinsertion, size_t *nmax, const char fmt, int flags,
- int width, int precision, char prefix, va_list *ap)
+ int width, int precision, char prefix, const char *str)
{
- const char *str = va_arg(*ap, const char *);
int nprinted;
int len;
int pad = 0;
@@ -428,7 +427,7 @@
*/
int pvsnfmt_int(char **pinsertion, size_t *nmax, char fmt, int flags,
- int width, int precision, char prefix, va_list *ap)
+ int width, int precision, char prefix, unsigned long arg)
{
long int number = 0;
unsigned long int unumber;
@@ -463,17 +462,17 @@
{
case 'd':
case 'i':
- number = (signed short int) va_arg(*ap, int);
+ number = (signed short int) arg;
break;
case 'u':
case 'o':
case 'x':
case 'X':
- unumber = (unsigned short int) va_arg(*ap, int);
+ unumber = (unsigned short int) arg;
numbersigned = 0;
break;
case 'p':
- unumber = (unsigned long) va_arg(*ap, void *);
+ unumber = arg;
numbersigned = 0;
}
break;
@@ -482,17 +481,17 @@
{
case 'd':
case 'i':
- number = va_arg(*ap, signed long int);
+ number = arg;
break;
case 'u':
case 'o':
case 'x':
case 'X':
- unumber = va_arg(*ap, unsigned long int);
+ unumber = arg;
numbersigned = 0;
break;
case 'p':
- unumber = (unsigned long) va_arg(*ap, void *);
+ unumber = arg;
numbersigned = numbersigned;
}
break;
@@ -501,17 +500,17 @@
{
case 'd':
case 'i':
- number = va_arg(*ap, signed int);
+ number = (signed int)arg;
break;
case 'u':
case 'o':
case 'x':
case 'X':
- unumber = va_arg(*ap, unsigned int);
+ unumber = (unsigned int)arg;
numbersigned = 0;
break;
case 'p':
- unumber = (unsigned long) va_arg(*ap, void *);
+ unumber = arg;
numbersigned = 0;
}
} /* switch fmt to retrieve number */
@@ -784,13 +783,11 @@
*/
int pvsnfmt_double(char **pinsertion, size_t *nmax, const char fmt, int flags,
- int width, int precision, char prefix, va_list *ap)
+ int width, int precision, char prefix, double value)
{
char *digits;
int sign = 0;
int dec;
- double value = va_arg(*ap, double);
-
int len;
int pad = 0;
int signwidth = 0;
diff -Naur prboom-2.3.1/src/psnprntf.h prboom-2.3.1.new/src/psnprntf.h
--- prboom-2.3.1/src/psnprntf.h 2004-09-15 12:09:27.000000000 -0700
+++ prboom-2.3.1.new/src/psnprntf.h 2006-03-18 09:05:19.000000000 -0800
@@ -17,16 +17,16 @@
* if there had been enough room).
*/
int pvsnfmt_char(char **pinsertion, size_t *nmax, const char fmt, int flags,
- int width, int precision, char prefix, va_list *ap);
+ int width, int precision, char prefix, int arg);
int pvsnfmt_int(char **pinsertion, size_t *nmax, char fmt, int flags,
- int width, int precision, char prefix, va_list *ap);
+ int width, int precision, char prefix, unsigned long arg);
int pvsnfmt_str(char **pinsertion, size_t *nmax, const char fmt, int flags,
- int width, int precision, char prefix, va_list *ap);
+ int width, int precision, char prefix, const char *str);
int pvsnfmt_double(char **pinsertion, size_t *nmax, const char fmt, int flags,
- int width, int precision, char prefix, va_list *ap);
+ int width, int precision, char prefix, double value);
/* These are the flags you need (use logical OR) for the flags parameter of
* fmt functions above.
prboom-2.3.1-gcc4.patch:
Index: prboom-2.3.1-gcc4.patch
===================================================================
RCS file: /cvs/extras/rpms/prboom/FC-4/prboom-2.3.1-gcc4.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- prboom-2.3.1-gcc4.patch 14 Mar 2006 19:30:09 -0000 1.1
+++ prboom-2.3.1-gcc4.patch 19 Mar 2006 07:02:25 -0000 1.2
@@ -89,176 +89,6 @@
extern int iquehead;
extern int iquetail;
extern int gravity;
-diff -Naur prboom-2.3.1/src/psnprntf.c prboom-2.3.1.new/src/psnprntf.c
---- prboom-2.3.1/src/psnprntf.c 2004-09-24 11:27:36.000000000 -0700
-+++ prboom-2.3.1.new/src/psnprntf.c 2006-03-06 20:42:04.000000000 -0800
-@@ -130,7 +130,7 @@
- case 'X': \
- case 'p': \
- GET_VARS \
-- ncount += pvsnfmt_int(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
-+ ncount += pvsnfmt_int(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, ap); \
- state = STATE_NONE; \
- break; \
- case 'e': \
-@@ -139,17 +139,17 @@
- case 'g': \
- case 'G': \
- GET_VARS \
-- ncount += pvsnfmt_double(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
-+ ncount += pvsnfmt_double(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, ap); \
- state = STATE_NONE; \
- break; \
- case 'c': \
- GET_VARS \
-- ncount += pvsnfmt_char(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
-+ ncount += pvsnfmt_char(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, ap); \
- state = STATE_NONE; \
- break; \
- case 's': \
- GET_VARS \
-- ncount += pvsnfmt_str(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, &ap); \
-+ ncount += pvsnfmt_str(&pinsertion, &nmax, *pfmt, flags, width, precision, prefix, ap); \
- state = STATE_NONE; \
- break; \
- case 'n': \
-@@ -306,11 +306,11 @@
- }
-
- int pvsnfmt_char(char **pinsertion, size_t *nmax, const char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap)
-+ int width, int precision, char prefix, va_list ap)
- {
- if (*nmax > 1)
- {
-- **pinsertion = (char) va_arg(*ap, int);
-+ **pinsertion = (char) va_arg(ap, int);
- *pinsertion += 1;
- *nmax -= 1;
- }
-@@ -338,9 +338,9 @@
- */
-
- int pvsnfmt_str(char **pinsertion, size_t *nmax, const char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap)
-+ int width, int precision, char prefix, va_list ap)
- {
-- const char *str = va_arg(*ap, const char *);
-+ const char *str = va_arg(ap, const char *);
- int nprinted;
- int len;
- int pad = 0;
-@@ -428,7 +428,7 @@
- */
-
- int pvsnfmt_int(char **pinsertion, size_t *nmax, char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap)
-+ int width, int precision, char prefix, va_list ap)
- {
- long int number = 0;
- unsigned long int unumber;
-@@ -463,17 +463,17 @@
- {
- case 'd':
- case 'i':
-- number = (signed short int) va_arg(*ap, int);
-+ number = (signed short int) va_arg(ap, int);
- break;
- case 'u':
- case 'o':
- case 'x':
- case 'X':
-- unumber = (unsigned short int) va_arg(*ap, int);
-+ unumber = (unsigned short int) va_arg(ap, int);
- numbersigned = 0;
- break;
- case 'p':
-- unumber = (unsigned long) va_arg(*ap, void *);
-+ unumber = (unsigned long) va_arg(ap, void *);
- numbersigned = 0;
- }
- break;
-@@ -482,17 +482,17 @@
- {
- case 'd':
- case 'i':
-- number = va_arg(*ap, signed long int);
-+ number = va_arg(ap, signed long int);
- break;
- case 'u':
- case 'o':
- case 'x':
- case 'X':
-- unumber = va_arg(*ap, unsigned long int);
-+ unumber = va_arg(ap, unsigned long int);
- numbersigned = 0;
- break;
- case 'p':
-- unumber = (unsigned long) va_arg(*ap, void *);
-+ unumber = (unsigned long) va_arg(ap, void *);
- numbersigned = numbersigned;
- }
- break;
-@@ -501,17 +501,17 @@
- {
- case 'd':
- case 'i':
-- number = va_arg(*ap, signed int);
-+ number = va_arg(ap, signed int);
- break;
- case 'u':
- case 'o':
- case 'x':
- case 'X':
-- unumber = va_arg(*ap, unsigned int);
-+ unumber = va_arg(ap, unsigned int);
- numbersigned = 0;
- break;
- case 'p':
-- unumber = (unsigned long) va_arg(*ap, void *);
-+ unumber = (unsigned long) va_arg(ap, void *);
- numbersigned = 0;
- }
- } /* switch fmt to retrieve number */
-@@ -784,12 +784,12 @@
- */
-
- int pvsnfmt_double(char **pinsertion, size_t *nmax, const char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap)
-+ int width, int precision, char prefix, va_list ap)
- {
- char *digits;
- int sign = 0;
- int dec;
-- double value = va_arg(*ap, double);
-+ double value = va_arg(ap, double);
-
- int len;
- int pad = 0;
-diff -Naur prboom-2.3.1/src/psnprntf.h prboom-2.3.1.new/src/psnprntf.h
---- prboom-2.3.1/src/psnprntf.h 2004-09-15 12:09:27.000000000 -0700
-+++ prboom-2.3.1.new/src/psnprntf.h 2006-03-06 20:42:04.000000000 -0800
-@@ -17,16 +17,16 @@
- * if there had been enough room).
- */
- int pvsnfmt_char(char **pinsertion, size_t *nmax, const char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap);
-+ int width, int precision, char prefix, va_list ap);
-
- int pvsnfmt_int(char **pinsertion, size_t *nmax, char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap);
-+ int width, int precision, char prefix, va_list ap);
-
- int pvsnfmt_str(char **pinsertion, size_t *nmax, const char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap);
-+ int width, int precision, char prefix, va_list ap);
-
- int pvsnfmt_double(char **pinsertion, size_t *nmax, const char fmt, int flags,
-- int width, int precision, char prefix, va_list *ap);
-+ int width, int precision, char prefix, va_list ap);
-
- /* These are the flags you need (use logical OR) for the flags parameter of
- * fmt functions above.
diff -Naur prboom-2.3.1/src/r_bsp.h prboom-2.3.1.new/src/r_bsp.h
--- prboom-2.3.1/src/r_bsp.h 2004-09-15 12:09:31.000000000 -0700
+++ prboom-2.3.1.new/src/r_bsp.h 2006-03-06 20:42:04.000000000 -0800
Index: prboom.spec
===================================================================
RCS file: /cvs/extras/rpms/prboom/FC-4/prboom.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- prboom.spec 14 Mar 2006 19:30:09 -0000 1.1
+++ prboom.spec 19 Mar 2006 07:02:25 -0000 1.2
@@ -2,7 +2,7 @@
Name: prboom
Version: 2.3.1
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Open source port of the DOOM game engine
Group: Amusements/Games
@@ -13,6 +13,7 @@
Patch1: prboom-2.3.1-gamedir.patch
Patch2: prboom-2.3.1-config.patch
Patch3: prboom-2.3.1-64bit.patch
+Patch4: prboom-2.3.1-fixpsnprintf.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: SDL_mixer-devel SDL_net-devel
@@ -32,6 +33,7 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%build
%configure --disable-cpu-opt --program-prefix=''
@@ -67,6 +69,9 @@
%doc doc/README.compat doc/README.demos doc/MBF.txt doc/MBFFAQ.txt doc/boom.txt
%changelog
+* Sat Mar 18 2006 Wart <wart at kobold.org> 2.3.1-5
+- Updated patches to fix segfault on i386 (BZ #185741)
+
* Tue Mar 14 2006 Wart <wart at kobold.org> 2.3.1-4
- Added patch to fix up some x86_64 issues
More information about the fedora-extras-commits
mailing list