int i, j;
yylval.string = (char *) malloc(len + 1);
- if (yylval.string == NULL)
+ if (yylval.string == NULL) {
yyerror("unable to allocate memory");
+ return;
+ }
/* Copy the string and collapse any escaped characters. */
for (i = 0, j = 0; i < len; i++, j++) {
arg_len = arg_size = 0;
yylval.command.cmnd = (char *) malloc(len + 1);
- if (yylval.command.cmnd == NULL)
+ if (yylval.command.cmnd == NULL) {
yyerror("unable to allocate memory");
+ return;
+ }
/* copy the string and NULL-terminate it (escapes handled by fnmatch) */
(void) strncpy(yylval.command.cmnd, s, len);
while (new_len >= (arg_size += COMMANDARGINC))
;
- if ((p = (char *) realloc(yylval.command.args, arg_size)) == NULL) {
+ p = yylval.command.args ?
+ (char *) realloc(yylval.command.args, arg_size) :
+ (char *) malloc(arg_size);
+ if (p == NULL) {
if (yylval.command.args != NULL)
free(yylval.command.args);
yyerror("unable to allocate memory");
+ return;
} else
yylval.command.args = p;
}