--- embedaddon/sudo/plugins/sudoers/toke_util.c 2012/02/21 16:23:02 1.1 +++ embedaddon/sudo/plugins/sudoers/toke_util.c 2012/05/29 12:26:49 1.1.1.2 @@ -48,6 +48,7 @@ # include #endif /* HAVE_MALLOC_H && !STDC_HEADERS */ #include + #include "sudoers.h" #include "parse.h" #include "toke.h" @@ -56,11 +57,11 @@ static int arg_len = 0; static int arg_size = 0; -static unsigned char +static int hexchar(const char *s) { - int i; - int result = 0; + int i, result = 0; + debug_decl(hexchar, SUDO_DEBUG_PARSER) s += 2; /* skip \\x */ for (i = 0; i < 2; i++) { @@ -98,18 +99,19 @@ hexchar(const char *s) s++; } } - return (unsigned char)result; + debug_return_int(result); } -int +bool fill_txt(const char *src, int len, int olen) { char *dst; + debug_decl(fill_txt, SUDO_DEBUG_PARSER) dst = olen ? realloc(yylval.string, olen + len + 1) : malloc(len + 1); if (dst == NULL) { yyerror(_("unable to allocate memory")); - return FALSE; + debug_return_bool(false); } yylval.string = dst; @@ -133,35 +135,37 @@ fill_txt(const char *src, int len, int olen) } } *dst = '\0'; - return TRUE; + debug_return_bool(true); } -int +bool append(const char *src, int len) { int olen = 0; + debug_decl(append, SUDO_DEBUG_PARSER) if (yylval.string != NULL) olen = strlen(yylval.string); - return fill_txt(src, len, olen); + debug_return_bool(fill_txt(src, len, olen)); } #define SPECIAL(c) \ ((c) == ',' || (c) == ':' || (c) == '=' || (c) == ' ' || (c) == '\t' || (c) == '#') -int +bool fill_cmnd(const char *src, int len) { char *dst; int i; + debug_decl(fill_cmnd, SUDO_DEBUG_PARSER) arg_len = arg_size = 0; dst = yylval.command.cmnd = (char *) malloc(len + 1); if (yylval.command.cmnd == NULL) { yyerror(_("unable to allocate memory")); - return FALSE; + debug_return_bool(false); } /* Copy the string and collapse any escaped sudo-specific characters. */ @@ -174,14 +178,15 @@ fill_cmnd(const char *src, int len) *dst = '\0'; yylval.command.args = NULL; - return TRUE; + debug_return_bool(true); } -int +bool fill_args(const char *s, int len, int addspace) { int new_len; char *p; + debug_decl(fill_args, SUDO_DEBUG_PARSER) if (yylval.command.args == NULL) { addspace = 0; @@ -200,7 +205,7 @@ fill_args(const char *s, int len, int addspace) if (p == NULL) { efree(yylval.command.args); yyerror(_("unable to allocate memory")); - return FALSE; + debug_return_bool(false); } else yylval.command.args = p; } @@ -211,21 +216,22 @@ fill_args(const char *s, int len, int addspace) *p++ = ' '; if (strlcpy(p, s, arg_size - (p - yylval.command.args)) != len) { yyerror(_("fill_args: buffer overflow")); /* paranoia */ - return FALSE; + debug_return_bool(false); } arg_len = new_len; - return TRUE; + debug_return_bool(true); } /* * Check to make sure an IPv6 address does not contain multiple instances * of the string "::". Assumes strlen(s) >= 1. - * Returns TRUE if address is valid else FALSE. + * Returns true if address is valid else false. */ -int +bool ipv6_valid(const char *s) { int nmatch = 0; + debug_decl(ipv6_valid, SUDO_DEBUG_PARSER) for (; *s != '\0'; s++) { if (s[0] == ':' && s[1] == ':') { @@ -236,5 +242,5 @@ ipv6_valid(const char *s) nmatch = 0; /* reset if we hit netmask */ } - return nmatch <= 1; + debug_return_bool(nmatch <= 1); }