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;
}