aboutsummaryrefslogtreecommitdiff
path: root/sysutils/wmcube-gdk
diff options
context:
space:
mode:
authorPatrick Li <pat@FreeBSD.org>2001-12-20 02:24:26 +0000
committerPatrick Li <pat@FreeBSD.org>2001-12-20 02:24:26 +0000
commitd32c57094b34f355e47c05a95ae9d381a5712a71 (patch)
treef5c464ee9c327e4a4b2793b001828a27f70e23b9 /sysutils/wmcube-gdk
parentaba1efa4c34d066198f092afcb510b5563eed899 (diff)
downloadports-d32c57094b34f355e47c05a95ae9d381a5712a71.tar.gz
ports-d32c57094b34f355e47c05a95ae9d381a5712a71.zip
Further fix a local exploit
Submitted by: corecode <corecode@corecode.ath.cx>
Notes
Notes: svn path=/head/; revision=51875
Diffstat (limited to 'sysutils/wmcube-gdk')
-rw-r--r--sysutils/wmcube-gdk/Makefile1
-rw-r--r--sysutils/wmcube-gdk/files/patch-wmcube.c65
2 files changed, 66 insertions, 0 deletions
diff --git a/sysutils/wmcube-gdk/Makefile b/sysutils/wmcube-gdk/Makefile
index 6a3092c55f89..70bab75ab4ef 100644
--- a/sysutils/wmcube-gdk/Makefile
+++ b/sysutils/wmcube-gdk/Makefile
@@ -7,6 +7,7 @@
PORTNAME= wmcube
PORTVERSION= 0.98p2
+PORTREVISION= 1
CATEGORIES= sysutils windowmaker
MASTER_SITES= http://www.ne.jp/asahi/linux/timecop/software/
PKGNAMESUFFIX= -gdk
diff --git a/sysutils/wmcube-gdk/files/patch-wmcube.c b/sysutils/wmcube-gdk/files/patch-wmcube.c
new file mode 100644
index 000000000000..b6026aaa448b
--- /dev/null
+++ b/sysutils/wmcube-gdk/files/patch-wmcube.c
@@ -0,0 +1,65 @@
+--- wmcube.c.orig Tue Aug 28 12:08:13 2001
++++ wmcube.c Tue Dec 18 14:37:25 2001
+@@ -778,7 +777,7 @@
+ newx -= CHAR_WIDTH;
+ }
+
+- sprintf(buf, "%02i%%", num);
++ snprintf(buf, 5, "%02i%%", num);
+ for (i = 0; (c = buf[i]); i++) {
+ if (c == '%')
+ copy_xpm_area(60, 0, 7, 9, newx, y);
+@@ -1250,7 +1249,7 @@
+ exit(0);
+ }
+
+- fscanf(fp, "%s", tmp);
++ fscanf(fp, "%63s", tmp);
+
+ if (strcmp(tmp, "WMCUBE_COORDINATES") != 0) {
+ printf
+@@ -1259,7 +1258,7 @@
+ exit(0);
+ }
+
+- fscanf(fp, "%s", tmp);
++ fscanf(fp, "%63s", tmp);
+ counter = atoi(tmp);
+
+ while ((strcmp(tmp, "WMCUBE_LINES") != 0)
+@@ -1280,7 +1279,7 @@
+ fclose(fp);
+ exit(0);
+ }
+- fscanf(fp, "%s", tmp);
++ fscanf(fp, "%63s", tmp);
+
+ if (feof(fp)) {
+ printf
+@@ -1398,7 +1397,7 @@
+ char cpuid[6];
+ char check_cpu[6];
+
+- sprintf(check_cpu, "cpu%d", which_cpu);
++ snprintf(check_cpu, 6, "cpu%d", which_cpu);
+
+ if ((fp = fopen("/proc/stat", "rb")) == NULL) {
+ perror("/proc/stat required for this system");
+@@ -1409,7 +1408,7 @@
+ return 0;
+
+ for (i = -2; i < which_cpu; i++) {
+- fscanf(fp, "%s", cpuid);
++ fscanf(fp, "%5s", cpuid);
+ }
+
+ if (strcmp(check_cpu, cpuid) != 0) {
+@@ -1431,7 +1430,7 @@
+ fp = fopen("/proc/stat", "rt");
+
+ for (i = -2; i < which_cpu; i++) {
+- fscanf(fp, "%s %d %d %d %d", cpuid, &cpu, &nice, &system, &idle);
++ fscanf(fp, "%5s %d %d %d %d", cpuid, &cpu, &nice, &system, &idle);
+ }
+
+ fclose(fp);