Module Name: othersrc Committed By: agc Date: Mon Nov 26 05:49:06 UTC 2012
Modified Files: othersrc/external/bsd/mat/dist: frontends.c mat.c Log Message: act on feedback from fuzz tests: check arguments to exported functions on entry to those functions To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 othersrc/external/bsd/mat/dist/frontends.c cvs rdiff -u -r1.6 -r1.7 othersrc/external/bsd/mat/dist/mat.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: othersrc/external/bsd/mat/dist/frontends.c diff -u othersrc/external/bsd/mat/dist/frontends.c:1.5 othersrc/external/bsd/mat/dist/frontends.c:1.6 --- othersrc/external/bsd/mat/dist/frontends.c:1.5 Wed Aug 3 01:09:58 2011 +++ othersrc/external/bsd/mat/dist/frontends.c Mon Nov 26 05:49:05 2012 @@ -163,6 +163,10 @@ mat_tar(int argc, char **argv) int ok; int i; + if (argc < 0 || argv == NULL || argv[0] == NULL || argv[1] == NULL) { + fprintf(stderr, "mat_tar: bad args\n"); + return 0; + } (void) memset(&mat, 0x0, sizeof(mat)); action = NULL; f = NULL; @@ -299,6 +303,10 @@ mat_vtar(char *arg, ...) char *s; int argc; + if (arg == NULL) { + fprintf(stderr, "mat_vtar: bad args\n"); + return 0; + } argv[0] = arg; va_start(args, arg); for (argc = 1 ; (s = va_arg(args, char *)) != NULL && argc < MAT_ARGC_MAX ; argc++) { @@ -325,6 +333,10 @@ mat_pax(int argc, char **argv) int ok; int i; + if (argv == NULL) { + fprintf(stderr, "mat_pax: bad args\n"); + return 0; + } (void) memset(&mat, 0x0, sizeof(mat)); dir = NULL; metalog = NULL; @@ -439,6 +451,10 @@ mat_vpax(char *arg, ...) char *s; int argc; + if (arg == NULL) { + fprintf(stderr, "mat_vpax: bad args\n"); + return 0; + } argv[0] = arg; va_start(args, arg); for (argc = 1 ; (s = va_arg(args, char *)) != NULL && argc < MAT_ARGC_MAX ; argc++) { Index: othersrc/external/bsd/mat/dist/mat.c diff -u othersrc/external/bsd/mat/dist/mat.c:1.6 othersrc/external/bsd/mat/dist/mat.c:1.7 --- othersrc/external/bsd/mat/dist/mat.c:1.6 Sun Nov 25 20:20:36 2012 +++ othersrc/external/bsd/mat/dist/mat.c Mon Nov 26 05:49:05 2012 @@ -610,6 +610,10 @@ mat_add(mat_t *mat, const char *f) int original; int primary; + if (mat == NULL || f == NULL) { + (void) fprintf(stderr, "mat_add: bad args\n"); + return 0; + } (void) memset(&ent, 0x0, sizeof(ent)); if (*f == '/') { (void) snprintf(dotpath, sizeof(dotpath), ".%s", f); @@ -747,6 +751,10 @@ mat_list(mat_t *mat, const char *pat, FI int list; int cc; + if (mat == NULL || fp == NULL) { + (void) fprintf(stderr, "mat_list: bad args\n"); + return 0; + } if (!mat_verify(mat)) { return 0; } @@ -931,6 +939,10 @@ mat_extract(mat_t *mat, const char *pat) matent_t ent; char *name; + if (mat == NULL) { + (void) fprintf(stderr, "mat_extract: bad args\n"); + return 0; + } if (!mat_verify(mat)) { return 0; } @@ -991,6 +1003,10 @@ mat_init(mat_t *mat, const char *f, cons struct stat st; matheader_t header; + if (mat == NULL || mode == NULL) { + (void) fprintf(stderr, "mat_init: bad args\n"); + return 0; + } mat->recursing = 1; /* default behavior */ if (strcmp(mat->action = mode, "create") == 0) { if (f == NULL || strcmp(f, "-") == 0) { @@ -1026,6 +1042,10 @@ mat_init(mat_t *mat, const char *f, cons int mat_end(mat_t *mat) { + if (mat == NULL) { + (void) fprintf(stderr, "mat_init: bad args\n"); + return 0; + } if (mat->mapped) { munmap(mat->mapped, mat->size); } @@ -1054,6 +1074,10 @@ mat_audit(mat_t *mat, const char *pat, F int cc; int ok; + if (mat == NULL) { + (void) fprintf(stderr, "mat_init: bad args\n"); + return 0; + } if (!mat_verify(mat)) { return 0; }