aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authoramdmi3 <amdmi3@FreeBSD.org>2009-10-30 02:27:46 +0800
committeramdmi3 <amdmi3@FreeBSD.org>2009-10-30 02:27:46 +0800
commitef0c8e7500a625a06fbb644bff14e60fb95b1b48 (patch)
tree76938e76241a8195869763acd80c9e702c890f6b /security
parent405221317ab699ac6d5bb8540475afe1564ad0bf (diff)
downloadfreebsd-ports-gnome-ef0c8e7500a625a06fbb644bff14e60fb95b1b48.tar.gz
freebsd-ports-gnome-ef0c8e7500a625a06fbb644bff14e60fb95b1b48.tar.zst
freebsd-ports-gnome-ef0c8e7500a625a06fbb644bff14e60fb95b1b48.zip
- fix the core dump when wiping e.g. /tmp/testfile ([1])
- fix permissions handling ([2]) PR: 139611 [1], 139637 [2] Submitted by: Michael <bug_report@arcor.de> [1], Christoph Weber-Fahr <cwf-ml@arcor.de> [2] Patch by: Rob Farmer <rfarmer@predatorlabs.net> (maintainer)
Diffstat (limited to 'security')
-rw-r--r--security/wipe/Makefile1
-rw-r--r--security/wipe/files/patch-prompt.c37
2 files changed, 38 insertions, 0 deletions
diff --git a/security/wipe/Makefile b/security/wipe/Makefile
index 70b7af4a27a1..2575166fa565 100644
--- a/security/wipe/Makefile
+++ b/security/wipe/Makefile
@@ -7,6 +7,7 @@
PORTNAME= wipe
PORTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= SF
diff --git a/security/wipe/files/patch-prompt.c b/security/wipe/files/patch-prompt.c
new file mode 100644
index 000000000000..c08de188dfca
--- /dev/null
+++ b/security/wipe/files/patch-prompt.c
@@ -0,0 +1,37 @@
+--- prompt.c.orig 2009-04-25 20:18:13.000000000 -0700
++++ prompt.c 2009-10-18 15:29:39.000000000 -0700
+@@ -41,9 +41,9 @@
+
+ #include "std.h"
+ #include "percent.h"
++#include "main.h"
+ #include "file.h"
+ #include "dir.h"
+-#include "main.h"
+ #include "wipe.h"
+ #include "blkdev.h"
+ #include "prompt.h"
+@@ -69,7 +69,10 @@
+ }
+ #endif
+
+- if (options.force) goto destroy;
++ if (options.force){
++ chmod(f->real_name, S_IRWXU);
++ goto destroy;
++ }
+
+ permdenied = access(f->name, perm);
+ if (options.interactive) /* force overrides interaction */
+@@ -119,7 +122,10 @@
+
+ fgets(prompt, sizeof(prompt), stdin);
+
+- if (prompt[0] == 'y' || prompt[0] == 'Y') goto destroy;
++ if (prompt[0] == 'y' || prompt[0] == 'Y'){
++ chmod(f->real_name, S_IRWXU);
++ goto destroy;
++ }
+ if (prompt[0] == 'n' || prompt[0] == 'N') return;
+ }
+ }