From 0c949560a12dd18943b66fe09bd06d3c34e5cf7a Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 18 Dec 2000 20:03:32 +0000 Subject: Divorce the kernel binary ABI version number from the message format version number. (userland programs should not need to be recompiled when the netgraph kernel internal ABI is changed. Also fix modules that don;t handle the fact that a caller may not supply a return message pointer. (benign at the moment because the calling code checks, but that will change) --- sys/netgraph/ng_base.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'sys/netgraph/ng_base.c') diff --git a/sys/netgraph/ng_base.c b/sys/netgraph/ng_base.c index 981d0bf..d9b26f4 100644 --- a/sys/netgraph/ng_base.c +++ b/sys/netgraph/ng_base.c @@ -856,7 +856,9 @@ ng_newtype(struct ng_type *tp) const size_t namelen = strlen(tp->name); /* Check version and type name fields */ - if (tp->version != NG_VERSION || namelen == 0 || namelen > NG_TYPELEN) { + if ((tp->version != NG_ABI_VERSION) + || (namelen == 0) + || (namelen > NG_TYPELEN)) { TRAP_ERROR; return (EINVAL); } @@ -1489,6 +1491,12 @@ ng_generic_msg(node_p here, struct ng_mesg *msg, const char *retaddr, break; } + /* Check response pointer */ + if (resp == NULL) { + error = EINVAL; + break; + } + /* Get a response message with lots of room */ NG_MKRESPONSE(rp, msg, sizeof(*ascii) + bufSize, M_NOWAIT); if (rp == NULL) { @@ -1565,6 +1573,12 @@ ng_generic_msg(node_p here, struct ng_mesg *msg, const char *retaddr, } ascii->data[ascii->header.arglen - 1] = '\0'; + /* Check response pointer */ + if (resp == NULL) { + error = EINVAL; + break; + } + /* Get a response message with lots of room */ NG_MKRESPONSE(rp, msg, sizeof(*binary) + bufSize, M_NOWAIT); if (rp == NULL) { -- cgit v1.1