Get more help from gcc, add -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2...
[sysvinit.git] / src / killall5.c
index 54176c3e9494a0699a5488babb0b7fe886b74310..187255598df3030a7fce410788d6aa6e30ecf5e4 100644 (file)
@@ -376,6 +376,20 @@ out:
        return 0;
 }
 
+/*
+ * Get the maximal number of symlinks to follow.  Use sysconf() on
+ * Hurd where the hardcoded value MAXSYMLINKS is not available.
+ */
+static int maxsymlinks(void)
+{
+       int v = sysconf(_SC_SYMLOOP_MAX);
+#ifdef MAXSYMLINKS
+       if (v == -1)
+               return MAXSYMLINKS;
+#endif
+       return v;
+}
+
 /*
  *     Check path is located on a network based partition.
  */
@@ -383,7 +397,7 @@ int check4nfs(const char * path, char * real)
 {
        char buf[PATH_MAX+1];
        const char *curr;
-       int deep = MAXSYMLINKS;
+       int deep = maxsymlinks();
 
        if (!nlist) return 0;