From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jay Fenlason Subject: Re: [PATCH] infiniband-diags: Verify timeout value specified to diagnostics Date: Mon, 20 Dec 2010 16:57:36 -0500 Message-ID: <20101220215735.GA4020@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Ira Weiny Cc: Sasha Khapyorsky , "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" List-Id: linux-rdma@vger.kernel.org Sorry if you get this more than once, I seem to have outgoing mail misconfiguration here. On Wed, Dec 15, 2010 at 11:47:09AM -0800, Ira Weiny wrote: > > Verify timeout value specified to diagnostics > > > Signed-off-by: Ira Weiny > --- > infiniband-diags/src/ibdiag_common.c | 10 +++++++--- > 1 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/infiniband-diags/src/ibdiag_common.c b/infiniband-diags/src/ibdia +g_common.c > index 99861f1..8ccf2fc 100644 > --- a/infiniband-diags/src/ibdiag_common.c > +++ b/infiniband-diags/src/ibdiag_common.c > @@ -175,9 +175,13 @@ static int process_opt(int ch, char *optarg) > ibd_dest_type = IB_DEST_GUID; > break; > case 't': > - val = strtoul(optarg, 0, 0); > - madrpc_set_timeout(val); > - ibd_timeout = val; > + val = (int)strtol(optarg, NULL, 0); > + if (val > 0) { > + madrpc_set_timeout(val); > + ibd_timeout = val; > + } else > + IBERROR("Invalid timeout \"%s\". Timeout requires a " > + "positive integer value.", optarg); > break; > case 's': > /* srcport is not required when resolving via IB_DEST_LID */ > -- > 1.5.4.5 This only partially detects invalid timeouts. For example, timeouts of "123skidoo" or 1234534587347895789457897897894578978912902393 will be accepted but will not work as expected. To fully test the conversion, you need to do something more like: long val; char *endp; ... errno = 0; val = strtol ( optarg, &endp 0 ); if ( errno || ( endp && *endp != '\0' ) || val < 0 || val > INT_MAX ) { /* invalid timeout detected */ ... All of the tests are required to detect invalid inputs. -- JF -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html