diff options
author | Guy Harris <guy@alum.mit.edu> | 2003-12-13 03:30:07 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2003-12-13 03:30:07 +0000 |
commit | 399591ce24d3c56c1255495a137aa6499095c4e7 (patch) | |
tree | 1a3ce991ae133f5b0b34e590311be9eda802375c /gtk/dcerpc_stat.c | |
parent | c20f75c872ff560b2d7a612c80dc1ce1d2be4331 (diff) |
Add some sanity checking of arguments.
svn path=/trunk/; revision=9268
Diffstat (limited to 'gtk/dcerpc_stat.c')
-rw-r--r-- | gtk/dcerpc_stat.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gtk/dcerpc_stat.c b/gtk/dcerpc_stat.c index 1246cf862e..eac1a2943c 100644 --- a/gtk/dcerpc_stat.c +++ b/gtk/dcerpc_stat.c @@ -1,7 +1,7 @@ /* dcerpc_stat.c * dcerpc_stat 2002 Ronnie Sahlberg * - * $Id: dcerpc_stat.c,v 1.30 2003/12/11 21:23:36 ulfl Exp $ + * $Id: dcerpc_stat.c,v 1.31 2003/12/13 03:30:07 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -217,13 +217,16 @@ gtk_dcerpcstat_init(char *optarg) rs=g_malloc(sizeof(rpcstat_t)); - rs->prog=dcerpc_get_proto_name(&uuid, (guint16) ((minor<<8)|(major&0xff)) ); - hf_opnum=dcerpc_get_proto_hf_opnum(&uuid, (guint16) ((minor<<8)|(major&0xff)) ); + if (major < 0 || major > 255 || minor < 0 || minor > 255) + rs->prog = NULL; /* bogus major or minor */ + else + rs->prog=dcerpc_get_proto_name(&uuid, (guint16) ((minor<<8)|(major&0xff)) ); if(!rs->prog){ g_free(rs); fprintf(stderr,"ethereal: dcerpcstat_init() Protocol with uuid:%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x v%d.%d not supported\n",uuid.Data1,uuid.Data2,uuid.Data3,uuid.Data4[0],uuid.Data4[1],uuid.Data4[2],uuid.Data4[3],uuid.Data4[4],uuid.Data4[5],uuid.Data4[6],uuid.Data4[7],major,minor); exit(1); } + hf_opnum=dcerpc_get_proto_hf_opnum(&uuid, (guint16) ((minor<<8)|(major&0xff)) ); procs=dcerpc_get_proto_sub_dissector(&uuid, (guint16) ((minor<<8)|(major&0xff)) ); rs->uuid=uuid; rs->ver=(minor<<8)|(major&0xff); |