Wed Oct 21 17:17:04 2009 UTC ()
nbpatch-20091021:
Do not try to mmap a zero length file. This can fail e.g. on Solaris.


(joerg)
diff -r1.3 -r1.4 pkgsrc/devel/nbpatch/Makefile
diff -r1.5 -r1.6 pkgsrc/devel/nbpatch/files/inp.c

cvs diff -r1.3 -r1.4 pkgsrc/devel/nbpatch/Makefile (expand / switch to context diff)
--- pkgsrc/devel/nbpatch/Makefile 2008/09/10 19:23:31 1.3
+++ pkgsrc/devel/nbpatch/Makefile 2009/10/21 17:17:04 1.4
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.3 2008/09/10 19:23:31 joerg Exp $
+# $NetBSD: Makefile,v 1.4 2009/10/21 17:17:04 joerg Exp $
 #
 
-DISTNAME=	nbpatch-20080910
+DISTNAME=	nbpatch-20091021
 CATEGORIES=	devel
 MASTER_SITES=	# empty
 DISTFILES=	# empty

cvs diff -r1.5 -r1.6 pkgsrc/devel/nbpatch/files/inp.c (expand / switch to context diff)
--- pkgsrc/devel/nbpatch/files/inp.c 2009/06/05 20:00:26 1.5
+++ pkgsrc/devel/nbpatch/files/inp.c 2009/10/21 17:17:04 1.6
@@ -1,7 +1,7 @@
 /*
  * $OpenBSD: inp.c,v 1.34 2006/03/11 19:41:30 otto Exp $
  * $DragonFly: src/usr.bin/patch/inp.c,v 1.6 2007/09/29 23:11:10 swildner Exp $
- * $NetBSD: inp.c,v 1.5 2009/06/05 20:00:26 joerg Exp $
+ * $NetBSD: inp.c,v 1.6 2009/10/21 17:17:04 joerg Exp $
  */
 
 /*
@@ -269,12 +269,16 @@
 	if ((ifd = open(filename, O_RDONLY)) < 0)
 		pfatal("can't open file %s", filename);
 
-	i_womp = mmap(NULL, i_size, PROT_READ, MAP_PRIVATE, ifd, 0);
-	if (i_womp == MAP_FAILED) {
-		perror("mmap failed");
+	if (i_size) {
+		i_womp = mmap(NULL, i_size, PROT_READ, MAP_PRIVATE, ifd, 0);
+		if (i_womp == MAP_FAILED) {
+			perror("mmap failed");
+			i_womp = NULL;
+			close(ifd);
+			return false;
+		}
+	} else {
 		i_womp = NULL;
-		close(ifd);
-		return false;
 	}
 
 	close(ifd);