diff options
Diffstat (limited to 'lib/libc/yp/yplib.c')
-rw-r--r-- | lib/libc/yp/yplib.c | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/lib/libc/yp/yplib.c b/lib/libc/yp/yplib.c index f9d881d..198365c 100644 --- a/lib/libc/yp/yplib.c +++ b/lib/libc/yp/yplib.c @@ -380,10 +380,12 @@ int *outvallen; *outval = NULL; *outvallen = 0; - /* Sanity check: no null keys allowed! */ + /* Sanity check */ - if (inkey == NULL || *inkey == '\0') - return YPERR_KEY; + if (inkey == NULL || !strlen(inkey) || inkeylen <= 0 || + inmap == NULL || !strlen(inmap) || + indomain == NULL || !strlen(indomain)) + return YPERR_BADARGS; again: if( _yp_dobind(indomain, &ysd) != 0) @@ -459,6 +461,12 @@ int *outvallen; struct timeval tv; int r; + /* Sanity check */ + + if (indomain == NULL || !strlen(indomain) || + inmap == NULL || !strlen(inmap)) + return YPERR_BADARGS; + *outkey = *outval = NULL; *outkeylen = *outvallen = 0; @@ -512,13 +520,15 @@ int *outvallen; struct timeval tv; int r; - *outkey = *outval = NULL; - *outkeylen = *outvallen = 0; + /* Sanity check */ - /* Sanity check: no null keys allowed! */ + if (inkey == NULL || !strlen(inkey) || inkeylen <= 0 || + inmap == NULL || !strlen(inmap) || + indomain == NULL || !strlen(indomain)) + return YPERR_BADARGS; - if (inkey == NULL || *inkey == '\0') - return YPERR_KEY; + *outkey = *outval = NULL; + *outkeylen = *outvallen = 0; again: if( _yp_dobind(indomain, &ysd) != 0) @@ -569,6 +579,12 @@ struct ypall_callback *incallback; u_long status; int clnt_sock; + /* Sanity check */ + + if (indomain == NULL || !strlen(indomain) || + inmap == NULL || !strlen(inmap)) + return YPERR_BADARGS; + if( _yp_dobind(indomain, &ysd) != 0) return YPERR_DOMAIN; @@ -611,6 +627,12 @@ int *outorder; struct timeval tv; int r; + /* Sanity check */ + + if (indomain == NULL || !strlen(indomain) || + inmap == NULL || !strlen(inmap)) + return YPERR_BADARGS; + again: if( _yp_dobind(indomain, &ysd) != 0) return YPERR_DOMAIN; @@ -649,6 +671,11 @@ char **outname; struct timeval tv; int r; + /* Sanity check */ + + if (indomain == NULL || !strlen(indomain) || + inmap == NULL || !strlen(inmap)) + return YPERR_BADARGS; again: if( _yp_dobind(indomain, &ysd) != 0) return YPERR_DOMAIN; @@ -685,6 +712,11 @@ struct ypmaplist **outmaplist; struct timeval tv; int r; + /* Sanity check */ + + if (indomain == NULL || !strlen(indomain)) + return YPERR_BADARGS; + again: if( _yp_dobind(indomain, &ysd) != 0) return YPERR_DOMAIN; |