From owner-svn-src-all@freebsd.org Thu Jun 20 23:15:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BBB915CA4C8 for ; Thu, 20 Jun 2019 23:15:30 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A9E3F6BDAD for ; Thu, 20 Jun 2019 23:15:29 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qt1-x844.google.com with SMTP id d23so5061042qto.2 for ; Thu, 20 Jun 2019 16:15:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=pP6UDQ2YIuSQNuRYDe5b4SqRyw/WieOj4UZl6SrJwi0=; b=k8qwz3AgXFau4jkO+0u703eCaEt/eLXTy79HGN7Dym6Sr6Kkt2ej0g5qfNCRde66Kt FDkzLDyyDLvf4j+n96HHJtP8ynRcJLNe9KVmOCkRnE979LS+Il7HY3ZL7kVOcLLf5u/5 lB84GLSz/zKKMJ6AdHukYFO17+v1ImKO9VqhlUGe3p6NFphFhkpQCBvIxW3h8GOiCb33 4MT4J7I5ukgBlkiCg0CQpl02Vg00WRg2NH8aTWKwWS2wS4ViZAKninJxe0FgjqsuDAEa HqD6IkzlJNXk8DpzvX9ocCrKMx8uhSOwY/tJTP0ibhEiTYN75uGnc4+TX13rqM+JlfLN d7Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=pP6UDQ2YIuSQNuRYDe5b4SqRyw/WieOj4UZl6SrJwi0=; b=p4JQwLnn26tqnpO5operKTnyjtueaOt0z0pL6w3izSmp+J44los8BM/vaYy37tnui6 NBABEgcfTxFvSyZ5lBOrqi9TTReDhkVp5nlXnGVhW8JEpBNiH44MZzeXu3YevUgdn4Lk ORTm3VV1LeyFOIYqRMGs1HigkmZu4fElFlr6lc61jm3ZUbjU5ngIyiq38GjKSirGqnf2 Wut8wSK5aSv84BKGcdPqX8YfiGBLjHc5ogtkU2uE+zmrjgQz0RhRrzKC46WAeJVyCgSl ipnypisNwQPmAA+74n74tRlnvY5qXFgNmQHd9FImPVjcPDnMJJ7cBjYk010mAzebD8aX gvqA== X-Gm-Message-State: APjAAAVRTCZggnkUO3gb43kYqRDwPJjHs5VKb36DYIufV/bFl1+9FX8p 6hlQ9VYHrmVnJK9OnH4ofHfaJQ== X-Google-Smtp-Source: APXvYqz+WzWTvDsEe7pDtoWNLaC3OC4Dov136wNAQj4UZHiWi9VU3kT3BWHb6Xn8fnwcAgNWT9CNfQ== X-Received: by 2002:a0c:ff46:: with SMTP id y6mr41798044qvt.214.1561072528951; Thu, 20 Jun 2019 16:15:28 -0700 (PDT) Received: from mutt-hbsd (c-69-251-68-137.hsd1.de.comcast.net. [69.251.68.137]) by smtp.gmail.com with ESMTPSA id a21sm572544qkg.47.2019.06.20.16.15.27 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Thu, 20 Jun 2019 16:15:28 -0700 (PDT) Date: Thu, 20 Jun 2019 19:15:27 -0400 From: Shawn Webb To: Scott Long Cc: Alexander Motin , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r349243 - head/sys/cam Message-ID: <20190620231527.pe2vhkvtcppao6ib@mutt-hbsd> References: <201906202029.x5KKThjn017867@repo.freebsd.org> <6B266DFC-87FF-4742-ACEE-0D37EABEFD7A@samsco.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ku7fsvwot5gtyq57" Content-Disposition: inline In-Reply-To: <6B266DFC-87FF-4742-ACEE-0D37EABEFD7A@samsco.org> X-Operating-System: FreeBSD mutt-hbsd 13.0-CURRENT-HBSD FreeBSD 13.0-CURRENT-HBSD HARDENEDBSD-13-CURRENT amd64 X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=vindex&search=0xFF2E67A277F8E1FA User-Agent: NeoMutt/20180716 X-Rspamd-Queue-Id: A9E3F6BDAD X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.96 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.964,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Jun 2019 23:15:30 -0000 --ku7fsvwot5gtyq57 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable +1 for M_ZERO. --=20 Shawn Webb Cofounder / Security Engineer HardenedBSD Tor-ified Signal: +1 443-546-8752 Tor+XMPP+OTR: lattera@is.a.hacker.sx GPG Key ID: 0xFF2E67A277F8E1FA GPG Key Fingerprint: D206 BB45 15E0 9C49 0CF9 3633 C85B 0AF8 AB23 0FB2 On Thu, Jun 20, 2019 at 04:59:48PM -0600, Scott Long wrote: > Hi Alexander, >=20 > I???m not a fan of removing the M_ZERO. I understand your argument that > lengths are provided elsewhere, but having the buffer be zero???d is defe= nsive > against future bugs that might leak buffer contents. GETATTR isn???t typ= ically > in a performance path, is there any measurable benefit to this? >=20 > Thanks, > Scott >=20 >=20 > > On Jun 20, 2019, at 2:29 PM, Alexander Motin wrote: > >=20 > > Author: mav > > Date: Thu Jun 20 20:29:42 2019 > > New Revision: 349243 > > URL: https://svnweb.freebsd.org/changeset/base/349243 > >=20 > > Log: > > Optimize xpt_getattr(). > >=20 > > Do not allocate temporary buffer for attributes we are going to return > > as-is, just make sure to NUL-terminate them. Do not zero temporary 64= KB > > buffer for CDAI_TYPE_SCSI_DEVID, XPT tells us how much data it filled > > and there are also length fields inside the returned data also. > >=20 > > MFC after: 2 weeks > > Sponsored by: iXsystems, Inc. > >=20 > > Modified: > > head/sys/cam/cam_xpt.c > >=20 > > Modified: head/sys/cam/cam_xpt.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/cam/cam_xpt.c Thu Jun 20 20:06:19 2019 (r349242) > > +++ head/sys/cam/cam_xpt.c Thu Jun 20 20:29:42 2019 (r349243) > > @@ -1253,6 +1253,7 @@ xpt_getattr(char *buf, size_t len, const char *at= tr, s > > cdai.ccb_h.func_code =3D XPT_DEV_ADVINFO; > > cdai.flags =3D CDAI_FLAG_NONE; > > cdai.bufsiz =3D len; > > + cdai.buf =3D buf; > >=20 > > if (!strcmp(attr, "GEOM::ident")) > > cdai.buftype =3D CDAI_TYPE_SERIAL_NUM; > > @@ -1262,14 +1263,14 @@ xpt_getattr(char *buf, size_t len, const char *= attr, s > > strcmp(attr, "GEOM::lunname") =3D=3D 0) { > > cdai.buftype =3D CDAI_TYPE_SCSI_DEVID; > > cdai.bufsiz =3D CAM_SCSI_DEVID_MAXLEN; > > + cdai.buf =3D malloc(cdai.bufsiz, M_CAMXPT, M_NOWAIT); > > + if (cdai.buf =3D=3D NULL) { > > + ret =3D ENOMEM; > > + goto out; > > + } > > } else > > goto out; > >=20 > > - cdai.buf =3D malloc(cdai.bufsiz, M_CAMXPT, M_NOWAIT|M_ZERO); > > - if (cdai.buf =3D=3D NULL) { > > - ret =3D ENOMEM; > > - goto out; > > - } > > xpt_action((union ccb *)&cdai); /* can only be synchronous */ > > if ((cdai.ccb_h.status & CAM_DEV_QFRZN) !=3D 0) > > cam_release_devq(cdai.ccb_h.path, 0, 0, 0, FALSE); > > @@ -1334,13 +1335,15 @@ xpt_getattr(char *buf, size_t len, const char *= attr, s > > ret =3D EFAULT; > > } > > } else { > > - ret =3D 0; > > - if (strlcpy(buf, cdai.buf, len) >=3D len) > > + if (cdai.provsiz < len) { > > + cdai.buf[cdai.provsiz] =3D 0; > > + ret =3D 0; > > + } else > > ret =3D EFAULT; > > } > >=20 > > out: > > - if (cdai.buf !=3D NULL) > > + if ((char *)cdai.buf !=3D buf) > > free(cdai.buf, M_CAMXPT); > > return ret; > > } > >=20 >=20 > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" --ku7fsvwot5gtyq57 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAl0ME4oACgkQ/y5nonf4 4fqioQ/+OCI8wWidt7sCNaPaHAJu9zKddev6a/evFMq8hqKG5JSjZ4As9aSFcfVZ HwWIrxxvcaS0vibuw+xbcSgktiIRG9+P0ryX+8XcL07bOxJ3eHWIV7aidO1t5q3o qSmZGxDzOXMWzQpQq+G0zz2FDag7xsCiqGosCnN1bKaEVAY83Nb9wQS8rq66jTGk yQsGoPOFYB3FLpqjdlmrsrcWHDuQa9rzsHS9r8txTwjfMSI/xhzvsYJPmz3Y6Zxh rA3uxRM1Do+2Y/cCnCr3LTI3GqEiQ3PS9Jzh/AeoDF2OImFnbRvr22dAjiD6iHCR nq4IaVbDOl6jd9nodHC3X4YQF5k+gLhBkNiUPfErrjDVhwqzQ6Jn1yf4TDkWGh0C efKxOai12X5m23SeZ1WAdJvCJ/Q6AF/tA/x3oRd+ckSYULRCAhuGqrY+XH1xgQgH zi34yyZEBHd3wmDTzE26axCFQV3QGT9gZMq3EaLnYH+83hMxBjYHKWfnsoSXAoxL zeGrTx7TWlGn8XW+1tn3/OYkP3I6YzNx+wZrkJHY5Xhii0Muq0F/okFyeDHRgz0k hI+bmiYgfFS77u3D8VD6vBAAte9CKoQpgbGZLGix/lL4CnJ5plaKJp+AgIKFtAyo qnjPt9oZyC2XQ6ORufWUexwJjeiGC6uHRAMa5k3LaeygzNznrWE= =dbMz -----END PGP SIGNATURE----- --ku7fsvwot5gtyq57--