diff options
-rw-r--r-- | gtk/dcerpc_stat.c | 31 | ||||
-rw-r--r-- | tap-dcerpcstat.c | 23 |
2 files changed, 35 insertions, 19 deletions
diff --git a/gtk/dcerpc_stat.c b/gtk/dcerpc_stat.c index 18cfd2807f..d504896f90 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.33 2003/12/13 22:23:18 guy Exp $ + * $Id: dcerpc_stat.c,v 1.34 2003/12/15 20:15:03 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -89,7 +89,7 @@ dcerpcstat_gen_title(rpcstat_t *rs) { char *title; - title = g_strdup_printf("DCE-RPC Service Response Time statistics for %s version %d.%d: %s", rs->prog, rs->ver&0xff, rs->ver>>8, cf_get_display_name(&cfile)); + title = g_strdup_printf("DCE-RPC Service Response Time statistics for %s version %u.%u: %s", rs->prog, rs->ver&0xff, rs->ver>>8, cf_get_display_name(&cfile)); return title; } @@ -190,6 +190,7 @@ gtk_dcerpcstat_init(char *optarg) e_uuid_t uuid; int d1,d2,d3,d40,d41,d42,d43,d44,d45,d46,d47; int major, minor; + guint16 ver; int pos=0; char *filter=NULL; GString *error_string; @@ -216,22 +217,28 @@ gtk_dcerpcstat_init(char *optarg) fprintf(stderr, "ethereal: invalid \"-z dcerpc,srt,<uuid>,<major version>.<minor version>[,<filter>]\" argument\n"); exit(1); } + if (major < 0 || major > 255) { + fprintf(stderr,"ethereal: dcerpcstat_init() Major version number %d is invalid - must be positive and <= 255\n", major); + exit(1); + } + if (minor < 0 || minor > 255) { + fprintf(stderr,"ethereal: dcerpcstat_init() Minor version number %d is invalid - must be positive and <= 255\n", minor); + exit(1); + } + ver = ((minor<<8)|(major&0xff)); rs=g_malloc(sizeof(rpcstat_t)); - 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)) ); + rs->prog=dcerpc_get_proto_name(&uuid, ver); 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); + fprintf(stderr,"ethereal: dcerpcstat_init() Protocol with uuid:%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x v%u.%u 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)) ); + hf_opnum=dcerpc_get_proto_hf_opnum(&uuid, ver); + procs=dcerpc_get_proto_sub_dissector(&uuid, ver); rs->uuid=uuid; - rs->ver=(minor<<8)|(major&0xff); + rs->ver=ver; rs->win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(rs->win), 550, 400); @@ -322,7 +329,7 @@ dcerpcstat_start_button_clicked(GtkWidget *item _U_, gpointer data _U_) str = g_string_new("dcerpc,srt"); g_string_sprintfa(str, - ",%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x,%d.%d", + ",%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x,%u.%u", dcerpc_uuid_program->Data1, dcerpc_uuid_program->Data2, dcerpc_uuid_program->Data3, dcerpc_uuid_program->Data4[0], dcerpc_uuid_program->Data4[1], @@ -362,7 +369,7 @@ dcerpcstat_find_vers(gpointer *key, gpointer *value _U_, gpointer *user_data _U_ return NULL; } - sprintf(vs,"%d.%d",k->ver&0xff,k->ver>>8); + sprintf(vs,"%u.%u",k->ver&0xff,k->ver>>8); menu_item=gtk_menu_item_new_with_label(vs); SIGNAL_CONNECT(menu_item, "activate", dcerpcstat_version_select, ((int)k->ver)); diff --git a/tap-dcerpcstat.c b/tap-dcerpcstat.c index 1ef20c3fb5..237b737ca5 100644 --- a/tap-dcerpcstat.c +++ b/tap-dcerpcstat.c @@ -1,7 +1,7 @@ /* tap-dcerpcstat.c * dcerpcstat 2002 Ronnie Sahlberg * - * $Id: tap-dcerpcstat.c,v 1.6 2003/09/03 10:10:17 sahlberg Exp $ + * $Id: tap-dcerpcstat.c,v 1.7 2003/12/15 20:15:02 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -158,7 +158,7 @@ dcerpcstat_draw(void *prs) #endif printf("\n"); printf("===================================================================\n"); - printf("%s Version %d.%d RTT Statistics:\n", rs->prog, rs->ver&0xff,rs->ver>>8); + printf("%s Version %u.%u RTT Statistics:\n", rs->prog, rs->ver&0xff,rs->ver>>8); printf("Filter: %s\n",rs->filter?rs->filter:""); printf("Procedure Calls Min RTT Max RTT Avg RTT\n"); for(i=0;i<rs->num_procedures;i++){ @@ -194,6 +194,7 @@ dcerpcstat_init(char *optarg) e_uuid_t uuid; int d1,d2,d3,d40,d41,d42,d43,d44,d45,d46,d47; int major, minor; + guint16 ver; int pos=0; char *filter=NULL; GString *error_string; @@ -219,18 +220,26 @@ dcerpcstat_init(char *optarg) fprintf(stderr, "tethereal: invalid \"-z dcerpc,rtt,<uuid>,<major version>.<minor version>[,<filter>]\" argument\n"); exit(1); } - + if (major < 0 || major > 255) { + fprintf(stderr,"tethereal: dcerpcstat_init() Major version number %d is invalid - must be positive and <= 255\n", major); + exit(1); + } + if (minor < 0 || minor > 255) { + fprintf(stderr,"tethereal: dcerpcstat_init() Minor version number %d is invalid - must be positive and <= 255\n", minor); + exit(1); + } + ver = ((minor<<8)|(major&0xff)); rs=g_malloc(sizeof(rpcstat_t)); - rs->prog=dcerpc_get_proto_name(&uuid, (minor<<8)|(major&0xff) ); + rs->prog=dcerpc_get_proto_name(&uuid, ver); if(!rs->prog){ g_free(rs); - fprintf(stderr,"tethereal: 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); + fprintf(stderr,"tethereal: dcerpcstat_init() Protocol with uuid:%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x v%u.%u 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); } - procs=dcerpc_get_proto_sub_dissector(&uuid, (minor<<8)|(major&0xff) ); + procs=dcerpc_get_proto_sub_dissector(&uuid, ver); rs->uuid=uuid; - rs->ver=(minor<<8)|(major&0xff); + rs->ver=ver; if(filter){ rs->filter=g_malloc(strlen(filter)+1); |