From: Jay Fenlason <fenlason-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Ira Weiny <weiny2-i2BcT+NCU+M@public.gmane.org>
Cc: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] infiniband-diags: Verify timeout value specified to diagnostics
Date: Mon, 20 Dec 2010 16:57:36 -0500 [thread overview]
Message-ID: <20101220215735.GA4020@redhat.com> (raw)
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 <weiny2-eSE4LqFkL++LYFxP40JT4w@public.gmane.org>
> ---
> 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
next reply other threads:[~2010-12-20 21:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-20 21:57 Jay Fenlason [this message]
[not found] ` <20101220215735.GA4020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-12-22 19:47 ` [PATCH] Further timeout paramater verification (Was: [PATCH] infiniband-diags: Verify timeout value specified to diagnostics) Ira Weiny
[not found] ` <20101222114707.c6ec051f.weiny2-i2BcT+NCU+M@public.gmane.org>
2011-01-02 15:53 ` Sasha Khapyorsky
-- strict thread matches above, loose matches on Subject: below --
2010-12-15 19:47 [PATCH] infiniband-diags: Verify timeout value specified to diagnostics Ira Weiny
[not found] ` <20101215114709.82671602.weiny2-i2BcT+NCU+M@public.gmane.org>
2010-12-20 15:31 ` Sasha Khapyorsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101220215735.GA4020@redhat.com \
--to=fenlason-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org \
--cc=weiny2-i2BcT+NCU+M@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox