- bug fix for mtab check. - bug fix for zero length nis key. - update for ifc buffer handling. - bug fix for kernel automount handling. - warning: I found a bunch of patches that were present but not being applied.
58 lines
1.6 KiB
Diff
58 lines
1.6 KiB
Diff
autofs-5.0.3 - handle zero length nis key update
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
A zero length key is invalid but so is a single character
|
|
non-printable key and it causes the parser to get confused
|
|
as well.
|
|
---
|
|
|
|
modules/lookup_yp.c | 17 +++++++++++++----
|
|
1 files changed, 13 insertions(+), 4 deletions(-)
|
|
|
|
|
|
diff --git a/modules/lookup_yp.c b/modules/lookup_yp.c
|
|
index ee06551..8b6408b 100644
|
|
--- a/modules/lookup_yp.c
|
|
+++ b/modules/lookup_yp.c
|
|
@@ -19,6 +19,7 @@
|
|
#include <unistd.h>
|
|
#include <time.h>
|
|
#include <signal.h>
|
|
+#include <ctype.h>
|
|
#include <sys/param.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
@@ -168,9 +169,13 @@ int yp_all_master_callback(int status, char *ypkey, int ypkeylen,
|
|
if (status != YP_TRUE)
|
|
return status;
|
|
|
|
- /* Ignore zero length keys */
|
|
- if (ypkeylen == 0)
|
|
+ /* Ignore zero length and single non-printable char keys */
|
|
+ if (ypkeylen == 0 || (ypkeylen == 1 && !isprint(*ypkey))) {
|
|
+ warn(logopt, MODPREFIX
|
|
+ "ignoring invalid map entry, zero length or "
|
|
+ "single character non-printable key");
|
|
return 0;
|
|
+ }
|
|
|
|
/*
|
|
* Ignore keys beginning with '+' as plus map
|
|
@@ -267,9 +272,13 @@ int yp_all_callback(int status, char *ypkey, int ypkeylen,
|
|
if (status != YP_TRUE)
|
|
return status;
|
|
|
|
- /* Ignore zero length keys */
|
|
- if (ypkeylen == 0)
|
|
+ /* Ignore zero length and single non-printable char keys */
|
|
+ if (ypkeylen == 0 || (ypkeylen == 1 && !isprint(*ypkey))) {
|
|
+ warn(logopt, MODPREFIX
|
|
+ "ignoring invalid map entry, zero length or "
|
|
+ "single character non-printable key");
|
|
return 0;
|
|
+ }
|
|
|
|
/*
|
|
* Ignore keys beginning with '+' as plus map
|