aboutsummaryrefslogtreecommitdiff
path: root/games/sxsame
diff options
context:
space:
mode:
authorWill Andrews <will@FreeBSD.org>2000-07-15 16:37:58 +0000
committerWill Andrews <will@FreeBSD.org>2000-07-15 16:37:58 +0000
commit179f9d996f48815f0ef219a2fe664f626b780228 (patch)
tree1362e1a18ae7e05ded06b97d9fae2e2e5050c60e /games/sxsame
parent6542dd22222027395463c554d8d945cf43cff961 (diff)
downloadports-179f9d996f48815f0ef219a2fe664f626b780228.tar.gz
ports-179f9d996f48815f0ef219a2fe664f626b780228.zip
Notes
Diffstat (limited to 'games/sxsame')
-rw-r--r--games/sxsame/files/patch-ad86
-rw-r--r--games/sxsame/files/patch-ae11
-rw-r--r--games/sxsame/files/patch-af39
-rw-r--r--games/sxsame/files/patch-ag71
-rw-r--r--games/sxsame/files/patch-ah85
5 files changed, 292 insertions, 0 deletions
diff --git a/games/sxsame/files/patch-ad b/games/sxsame/files/patch-ad
new file mode 100644
index 000000000000..34b7a8109bf2
--- /dev/null
+++ b/games/sxsame/files/patch-ad
@@ -0,0 +1,86 @@
+--- hiscore.c.orig Sun May 5 04:09:25 1996
++++ hiscore.c Tue Jul 11 21:29:01 2000
+@@ -5,14 +5,16 @@
+ * Copyleft (c) 1994-1996 Software Research Academy *
+ ************************************************************************/
+ #include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++#include <sys/param.h>
+ #include "config.h"
+ #include "hiscore.h"
+
+ static struct Hiscore hiscore[4];
+
+-static char *lockf = LOCK_FILE;
++static char *lockfn = LOCK_FILE;
+ static char *hiscoref = HISCORE_FILE;
+ extern char *same_dir;
+ static int lock_file(
+@@ -30,12 +32,15 @@
+ FILE *fp;
+ int i, j;
+ char *myname;
+- char tmpf[256];
++ char tmpf[MAXPATHLEN];
+ int new = 0;
+
+ myname = (char *)getenv("LOGNAME");
+- sprintf(tmpf, "%s/%s", same_dir, hiscoref);
+- umask(0);
++ if (MAXPATHLEN <= snprintf(tmpf, MAXPATHLEN ,"%s/%s", same_dir, hiscoref) ) {
++ fprintf(stderr,"Error: hiscore file name too long.\n");
++ return -1;
++ }
++ umask(002);
+ fp = fopen(tmpf,"rb");
+ if(fp != NULL)
+ {
+@@ -75,11 +80,11 @@
+ break;
+ }
+ }
+- if(i < 10 | new == 1)
++ if(i < 10 || new == 1)
+ {
+ if(lock_file(0) != 0)
+ return(-1);
+- umask(0);
++ umask(002);
+ fp = fopen(tmpf, "wb");
+ fwrite(hiscore, sizeof(hiscore), 1, fp);
+ fclose(fp);
+@@ -95,10 +100,12 @@
+ int cmd;
+ {
+ FILE *fp;
+- char lkf[256];
++ char lkf[MAXPATHLEN];
+ int i;
+-
+- sprintf(lkf,"%s/%s", same_dir, lockf);
++ if (MAXPATHLEN <= snprintf(lkf, MAXPATHLEN, "%s/%s", same_dir, lockfn)) {
++ fprintf(stderr,"Error: lock file name too long.\n");
++ return -1;
++ }
+ if(cmd == 1)
+ {
+ if(remove(lkf) != 0)
+@@ -134,9 +141,12 @@
+ struct Hiscore *hi;
+ {
+ FILE *fp;
+- char tmpf[256];
++ char tmpf[MAXPATHLEN];
+
+- sprintf(tmpf, "%s/%s", same_dir, hiscoref);
++ if (MAXPATHLEN <= snprintf(tmpf, MAXPATHLEN, "%s/%s", same_dir, hiscoref)) {
++ fprintf(stderr,"Error: hiscore file name too long.\n");
++ return -1;
++ }
+ fp = fopen(tmpf,"rb");
+ if(fp == NULL)
+ return(-1);
diff --git a/games/sxsame/files/patch-ae b/games/sxsame/files/patch-ae
new file mode 100644
index 000000000000..10ba162863f9
--- /dev/null
+++ b/games/sxsame/files/patch-ae
@@ -0,0 +1,11 @@
+--- inifile.c.orig Sun May 5 04:09:25 1996
++++ inifile.c Tue Jul 11 21:14:03 2000
+@@ -5,6 +5,8 @@
+ * Copyleft (c) 1994-1996 Software Research Academy *
+ ************************************************************************/
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+
+ #include "sxsame.h"
+
diff --git a/games/sxsame/files/patch-af b/games/sxsame/files/patch-af
new file mode 100644
index 000000000000..9d193e2ac01a
--- /dev/null
+++ b/games/sxsame/files/patch-af
@@ -0,0 +1,39 @@
+--- loadbmp.c.orig Sun May 5 04:09:25 1996
++++ loadbmp.c Tue Jul 11 21:30:24 2000
+@@ -5,6 +5,9 @@
+ * Copyleft (c) 1994-1996 Software Research Academy *
+ ************************************************************************/
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/param.h>
+ #include <X11/Xlib.h>
+ #include "sxsame.h"
+
+@@ -37,17 +40,24 @@
+ int c, c1,c2;
+ int width, height, planes, ncol;
+ int *col;
+- char fname[256];
++ char fname[MAXPATHLEN];
+
+ Pixmap w;
+ GC gc;
+ int i, j, k;
+
++ if (MAXPATHLEN <= strlen(bmpname) ) {
++ fprintf(stderr,"Error: BMP file name too long.\n");
++ return -1;
++ }
+ strcpy(fname,bmpname);
+ fp = fopen(fname,"rb");
+ if(fp == NULL)
+ {
+- sprintf(fname, "%s/%s", SAME_DIR, bmpname);
++ if (MAXPATHLEN <= snprintf(fname, MAXPATHLEN, "%s/%s", SAME_DIR, bmpname)) {
++ fprintf(stderr,"Error: BMP file name too long.\n");
++ return -1;
++ }
+ fp = fopen(fname, "r");
+ if(fp == NULL)
+ {
diff --git a/games/sxsame/files/patch-ag b/games/sxsame/files/patch-ag
new file mode 100644
index 000000000000..7641c57c7e0f
--- /dev/null
+++ b/games/sxsame/files/patch-ag
@@ -0,0 +1,71 @@
+--- loaddata.c.orig Sun May 5 04:09:25 1996
++++ loaddata.c Tue Jul 11 21:32:34 2000
+@@ -5,6 +5,9 @@
+ * Copyleft (c) 1994-1996 Software Research Academy *
+ ************************************************************************/
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/param.h>
+ #include "config.h"
+ #include "sxsame.h"
+
+@@ -25,7 +28,7 @@
+ DataFile ***data;
+ {
+ FILE *fp;
+- char fname[256];
++ char fname[MAXPATHLEN];
+ char buf[256];
+ char str1[256];
+ char str2[256];
+@@ -34,11 +37,18 @@
+ char *p;
+ int i;
+
++ if (MAXPATHLEN <= strlen(entry_name)) {
++ fprintf(stderr,"Error: data file name too long.\n");
++ return 0;
++ }
+ strcpy(fname,entry_name);
+ fp = fopen(fname, "r");
+ if(fp == NULL)
+ {
+- sprintf(fname, "%s/%s", SAME_DIR, entry_name);
++ if (MAXPATHLEN <= snprintf(fname, MAXPATHLEN ,"%s/%s", SAME_DIR, entry_name)) {
++ fprintf(stderr,"Error: data file name too long.\n");
++ return 0;
++ }
+ fp = fopen(fname, "r");
+ if(fp == NULL)
+ return(0);
+@@ -81,7 +91,7 @@
+ char *fname;
+ {
+ FILE *fp;
+- char tmpfname[256];
++ char tmpfname[MAXPATHLEN];
+ char buf[256];
+ char str1[256],str2[256];
+ int val, i, j;
+@@ -94,7 +104,7 @@
+ {
+ for(j=0;j<5;j++)
+ {
+- data->xpm_data[i][j] == 0;
++ data->xpm_data[i][j] = 0;
+ }
+ }
+ data->bg_data = 0;
+@@ -103,7 +113,10 @@
+ fp = fopen(fname,"r");
+ if(fp == NULL)
+ {
+- sprintf(tmpfname, "%s/%s", SAME_DIR, fname);
++ if (MAXPATHLEN <= snprintf(tmpfname, MAXPATHLEN, "%s/%s", SAME_DIR, fname)) {
++ fprintf(stderr,"Error: data file name too long.\n", fname);
++ return -1;
++ }
+ fp = fopen(tmpfname, "r");
+ if(fp == NULL)
+ {
diff --git a/games/sxsame/files/patch-ah b/games/sxsame/files/patch-ah
new file mode 100644
index 000000000000..d4e679528411
--- /dev/null
+++ b/games/sxsame/files/patch-ah
@@ -0,0 +1,85 @@
+--- sxsame.c.orig Sun May 5 04:09:26 1996
++++ sxsame.c Tue Jul 11 21:35:38 2000
+@@ -12,6 +12,11 @@
+ char *program_version = "3.02";
+
+ #include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <time.h>
++#include <string.h>
++#include <sys/param.h>
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+ #ifndef LOCAL_XPM_H
+@@ -163,11 +168,21 @@
+ int hisc_height = 80;
+ #endif /* !ENABLE_HISCORE */
+
+-
++int ReadInitFile(int* width, int* height, int* same_pic);
++int SaveInitFile(int width, int height, int same_pic);
+ int CheckSameDataFile(DataFile ***);
+ int LoadBMPSameData(Display *dpy, Colormap cmap, SameGame *, char *);
+ int LoadSameData(ImportSameData *, char *);
++int CheckSelectSame(int sx, int sy);
+
++static
++int
++Access(const char* path)
++{
++ return access(path, R_OK);
++}
++
++# define access(x) Access(x)
+
+ void main(argc, argv)
+ int argc;
+@@ -726,7 +741,7 @@
+ {
+ ImportSameData data;
+ int i, j, val, ncol;
+- char tmpfname[256];
++ char tmpfname[MAXPATHLEN];
+
+ if(strlen(fname)>4) /* check Windows data file... */
+ {
+@@ -784,9 +799,13 @@
+ {
+ if(!access(data.xpm_data[i][j]))
+ strcpy(tmpfname,data.xpm_data[i][j]);
+- else
+- sprintf(tmpfname,"%s/%s",same_dir,
+- data.xpm_data[i][j]);
++ else {
++ if (MAXPATHLEN <=
++ snprintf(tmpfname, MAXPATHLEN, "%s/%s",same_dir,
++ data.xpm_data[i][j])) {
++ goto xpm_error;
++ }
++ }
+ val = XpmReadFileToPixmap(dpy, root,
+ tmpfname, &game.bits_xpm[i][j],
+ NULL, &xpm_attr);
+@@ -804,7 +823,9 @@
+ if(!access(data.bg_data))
+ strcpy(tmpfname,data.bg_data);
+ else
+- sprintf(tmpfname,"%s/%s",same_dir, data.bg_data);
++ if (MAXPATHLEN <= snprintf(tmpfname, MAXPATHLEN, "%s/%s",same_dir, data.bg_data)) {
++ goto xpm_error;
++ }
+ val = XpmReadFileToPixmap(dpy, root, tmpfname,
+ &game.bg_xpm, NULL, &xpm_attr);
+ free(data.bg_data);
+@@ -815,6 +836,10 @@
+ strcpy(tmpfname,data.frame_data);
+ else
+ sprintf(tmpfname,"%s/%s",same_dir, data.frame_data);
++ if (MAXPATHLEN <= snprintf(tmpfname, MAXPATHLEN, "%s/%s",same_dir, data.frame_data)) {
++
++ goto xpm_error;
++ }
+ val = XpmReadFileToPixmap(dpy, root, tmpfname,
+ &game.frame_xpm, NULL, &xpm_attr);
+ free(data.frame_data);