diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/smbsrv/smbstat/smbstat.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/usr/src/cmd/smbsrv/smbstat/smbstat.c b/usr/src/cmd/smbsrv/smbstat/smbstat.c index b881165706..ebd4e9b69a 100644 --- a/usr/src/cmd/smbsrv/smbstat/smbstat.c +++ b/usr/src/cmd/smbsrv/smbstat/smbstat.c @@ -21,7 +21,7 @@ /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2015 Nexenta Systems, Inc. All rights reserved. + * Copyright 2020 Nexenta by DDN, Inc. All rights reserved. */ /* @@ -36,9 +36,9 @@ * The flow of the code is the following: * * - * +----------------+ - * | Initialization | - * +----------------+ + * +----------------+ + * | Initialization | + * +----------------+ * | * | * v @@ -46,7 +46,7 @@ * | Take a snapshot the data | <--------+ * +--------------------------+ | * | | - * | | + * | | * v | * +----------------------+ | * | Process the snapshot | | @@ -62,16 +62,16 @@ * v | * Yes --------------- | * +------------ < interval == 0 ? > | - * | --------------- | + * | --------------- | * | | | - * | | No | - * | v | + * | | No | + * | v | * | +------------------------+ | - * | | Sleep for the duration | ----------+ - * | | of the interval. | - * | +------------------------+ - * | - * +---------------------+ + * | | Sleep for the duration | ----------+ + * | | of the interval. | + * | +------------------------+ + * | + * +---------------------+ * | * v * @@ -1035,7 +1035,9 @@ smbstat_srv_process_requests( for (i = 0; i < SMB_COM_NUM; i++) { info = &smbstat_srv_info.si_reqs1[i]; - idx = info[i].ri_opcode & 0xFF; + idx = info->ri_opcode; + if (idx >= SMB_COM_NUM) + continue; curr_req = &curr->ss_data.ks_reqs1[idx]; prev_req = &prev->ss_data.ks_reqs1[idx]; smbstat_srv_process_one_req( @@ -1044,8 +1046,11 @@ smbstat_srv_process_requests( for (i = 0; i < SMB2__NCMDS; i++) { info = &smbstat_srv_info.si_reqs2[i]; - curr_req = &curr->ss_data.ks_reqs2[i]; - prev_req = &prev->ss_data.ks_reqs2[i]; + idx = info->ri_opcode; + if (idx >= SMB2__NCMDS) + continue; + curr_req = &curr->ss_data.ks_reqs2[idx]; + prev_req = &prev->ss_data.ks_reqs2[idx]; smbstat_srv_process_one_req( info, curr_req, prev_req, firstcall); } |