autofs-5.0.3 - handle zero length nis key update From: Ian Kent 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 #include #include +#include #include #include #include @@ -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