summaryrefslogtreecommitdiff
path: root/archivers/afio/patches/patch-ab
blob: e4cd58bdbc85f2670ab5639f99f85d5d13146f8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$NetBSD: patch-ab,v 1.3 2012/06/23 18:02:15 dholland Exp $

- Use NAME_MAX if available rather than relying on MAXNAMLEN.
- Fix Solaris preprocessor symbols.
- Fix bad calls to execlp() that break on 64-bit platforms.

--- compfile.c.orig	2003-06-24 21:32:20.000000000 +0000
+++ compfile.c
@@ -2,6 +2,7 @@
 
 #include <stdio.h>
 #include <errno.h>
+#include <limits.h>
 #include <unistd.h>
 #include <string.h>
 
@@ -179,7 +180,7 @@ int setupgzip(char *name)
       if (open (name, O_RDONLY) >= 0)
       { 
 	  if(! compressargs)
-	      execlp (compressprog, compressprog, "-c", farg, 0);
+	      execlp (compressprog, compressprog, "-c", farg, (char *)NULL);
 	  else
 	      execvp (compressprog, compress_arg_list);
       }
@@ -210,7 +211,7 @@ void waitforgzip()
  * version;
  */
 
-#if ( defined(sun) && defined(__svr4__) )
+#if ( defined(__sun) && defined(__SVR4) )
 #include <dirent.h>
 #else
 #include <sys/dir.h>
@@ -283,7 +284,9 @@ compressfile (int *fdp, char *name, reg 
       tmpcomp++;
     else
       tmpcomp = name;
-#ifdef MAXNAMLEN	   /* BSD otherwise should be sysV (FFS on sysV?) */
+#if defined(NAME_MAX)
+    if (strlen (tmpcomp) + 2 > NAME_MAX)
+#elif defined(MAXNAMLEN)  /* BSD otherwise should be sysV (FFS on sysV?) */
     if (strlen (tmpcomp) + 2 > MAXNAMLEN)
 #else
     if (strlen (tmpcomp) + 2 > DIRSIZ)