From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kernel.org ([198.145.29.99]:59374 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753177AbeBUQ13 (ORCPT ); Wed, 21 Feb 2018 11:27:29 -0500 Date: Wed, 21 Feb 2018 18:27:24 +0200 From: Leon Romanovsky To: David Ahern Cc: netdev , Stephen Hemminger , RDMA mailing list Subject: Re: [PATCH iproute2-next] rdma: Add batch command support Message-ID: <20180221162724.GM7709@mtr-leonro.local> References: <20180221123825.3042-1-leon@kernel.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="OOq1TgGhe8eTwFBO" Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: --OOq1TgGhe8eTwFBO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Feb 21, 2018 at 09:10:45AM -0700, David Ahern wrote: > On 2/21/18 5:38 AM, Leon Romanovsky wrote: > > @@ -36,17 +37,54 @@ static int rd_cmd(struct rd *rd) > > { 0 } > > }; > > > > + rd->argc = argc; > > + rd->argv = argv; > > + > > return rd_exec_cmd(rd, cmds, "object"); > > } > > > > -static int rd_init(struct rd *rd, int argc, char **argv, char *filename) > > +static int rd_batch(struct rd *rd, const char *name, bool force) > > +{ > > + char *line = NULL; > > + size_t len = 0; > > + int ret = 0; > > + > > + if (name && strcmp(name, "-") != 0) { > > + if (!freopen(name, "r", stdin)) { > > + pr_err("Cannot open file \"%s\" for reading: %s\n", > > + name, strerror(errno)); > > + return errno; > > + } > > + } > > + > > + cmdlineno = 0; > > + while (getcmdline(&line, &len, stdin) != -1) { > > + char *largv[512]; > > + int largc; > > + > > + largc = makeargs(line, largv, 100); > > you have largv[512] declared but passing a max of 100. I realize other > batch commands have it hardcoded, but ARRAY_SIZE is better. Thanks for catching it, it was my copy/paste error. I'll wait for a day for other comments and will resubmit if it is needed. The fix is: diff --git a/rdma/rdma.c b/rdma/rdma.c index ab8f98d2..ab2c9608 100644 --- a/rdma/rdma.c +++ b/rdma/rdma.c @@ -62,7 +62,7 @@ static int rd_batch(struct rd *rd, const char *name, bool force) char *largv[512]; int largc; - largc = makeargs(line, largv, 100); + largc = makeargs(line, largv, ARRAY_SIZE(largv)); if (!largc) continue; /* blank line */ --OOq1TgGhe8eTwFBO Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEkhr/r4Op1/04yqaB5GN7iDZyWKcFAlqNnewACgkQ5GN7iDZy WKeXcQ//QzRfD5BOofEt4s+2XitMmr0SaSQ8Ogf3yQHctJHPz9EHVT8svx/hgJLd oXe8+ecfIFMhLtGZvUoCMNsyTkUGZMiUSBX381wUS5uVekeofsjggDNPEo/nzpQX xiKBchHPD3oZC4tl/hsdRTrAt0cqGRNV/bI02DV1Igzjfm2iMqPGZ9wixhKU2MMW tHs7RbeEvn6Q7tSNm9ReYxcaLo49+vtDTaw75psApq3FIEszH9gaWkfwLMScdX24 v2443Bs7aTOpZr5WfOBciZEWZSEyVFXtxPWE2AdoUjUEbeWfDZBmIj8y8t0EMpqR CI6sJHLpqCpGw4w+3rvZpM3JSrSVU62G/9fQwEdpAVTUBhNGf3MNgzSH356a2kWH WBBWDjt7HOuQqBc/zBCZcNPLv4jxN//ibRtXCFnElSv+4GEwqLyVCcfLVFfUr4ed 393yOclpssyF7WqvzvXb6feh6l9kAcf31SrGa33PJWx1POvxMA4SvfWe1/V5Ppgn S09uW8poPC73z5S87QUwLEfWmpRCL+FdDjJ+Nmb1/eg3DXCL6dg28h/F9bNgO2jA yDMcq+G8EqouajioXytYw+Df431EMuM0vKP+fE63xg5vDMs1JdvdjAmzNhDNSAt8 DB+QQDp7/A17EDQ+RyM0WsFuXOPmLxLS6GVMJ5hBjj73Nc8TEWg= =lkAB -----END PGP SIGNATURE----- --OOq1TgGhe8eTwFBO--