From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22626 invoked by alias); 14 Jan 2018 15:30:05 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42277 Received: (qmail 25718 invoked by uid 1010); 14 Jan 2018 15:30:05 -0000 X-Qmail-Scanner-Diagnostics: from mail-pf0-f175.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.192.175):SA:0(1.8/5.0):. Processed in 1.450082 secs); 14 Jan 2018 15:30:05 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, FSL_HELO_FAKE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: joeypabalinas@gmail.com X-Qmail-Scanner-Mime-Attachments: |signature.asc| X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=AQvHg6oiQsQXPWcvgeQJzRJ9ID1/A2mwpqa9yiA1ExA=; b=QDT4Y+6/pyWszsAodW5tYalUJMQPg3L3iSlc99rHdHFesAZIDKP6OlWHQCZZhnZXm5 KJ6/yZTYVAj77aK7ZO6+8v2BEzhYkpKPC9KvUDjgLtWhv5Ig8QiI2fjfZrs+EObGSXOi tUJUnJeki/tFN5UlucAUC4Pbz9egDv0K7CC0dQInrzTtZ21ETMXaGUzGne8YdDtiHA1z xn54l4o1LzBIK0faNOLOQE7UnHuG5WfqgkX7y0YCwFdZ8/HlisB9ysI/+s+77ZPLrPqu 0ievNUThF15iRATKsfpx7JcWHKXGRlcwxN2Pz7vH30CkIpE3ftHdfpdvV2jfp5H/R1l1 6w6Q== 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=AQvHg6oiQsQXPWcvgeQJzRJ9ID1/A2mwpqa9yiA1ExA=; b=kOTa6j1ho6qoiffXaDHkf+836+yvR/Yq0dRPQhNOShfF8FT2n2opBpo53eXH1bDEkv KU5iyjpcFAYaMmenrFxxek8zZAzxNN+kg5y8MIRQF3yGVj3d33c+28WliAsNOKdDeaZO T34TawZJKv03wGyOG20FRSxNS9r2BH5YX4if3diNioe8of8D+0c5pvbG6r3qsVDBIRRy h2bRMSJFwyaioEI9Hga9x9RFQ+r3sp4QMQ1t9Yozuopbmt1yjbSARzH94frBC0993B5J vrtS/lQadrmSrDg71StcYlXRkpJiyJqtPsbMV2vxBkU2asmg2rTAh9xs+LgU3PKDbUO5 Ajww== X-Gm-Message-State: AKwxytda3lENEW5PG7Suq8RCyH+i4EQFZhc7FzY1Dy1XYxr+4F7/80cn SSFnrjJ/Jtrc8rqWo9HGe/DffQ== X-Google-Smtp-Source: ACJfBov3ogfFaXldkEnbSOf77FYWq2sTAhwRNkqUujM8j7Sv5hCiTAuaOWit1MorbC52aSCPKhr6pQ== X-Received: by 10.98.0.5 with SMTP id 5mr16119942pfa.202.1515943801720; Sun, 14 Jan 2018 07:30:01 -0800 (PST) Date: Sun, 14 Jan 2018 05:29:59 -1000 From: Joey Pabalinas To: schaefer@brasslantern.com Cc: dana@dana.is, zsh-workers@zsh.org Subject: Re: [PATCH 3/3] jp: Add `dupstring()` fallback to `zhtricat()` Message-ID: <20180114152959.lm4go4ym5fpkvir6@gmail.com> References: <20180114152344.12018-1-joeypabalinas@gmail.com> <20180114152344.12018-4-joeypabalinas@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4tv5vodbixrm253e" Content-Disposition: inline In-Reply-To: <20180114152344.12018-4-joeypabalinas@gmail.com> User-Agent: NeoMutt/20171215 --4tv5vodbixrm253e Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jan 14, 2018 at 05:23:44AM -1000, Joey Pabalinas wrote: > Add `dupstring()` fallback machanism to guard against NULL derefs > in 3-argument concat function. I am not 100% sure about this patch, so I split it off along with the error message changes; feel free to drop individual patches or suggest improvements. On Sun, Jan 14, 2018 at 05:23:44AM -1000, Joey Pabalinas wrote: > diff --git a/Src/string.c b/Src/string.c > index 038624d65a9f533494..df7e932061dbfbaab2 100644 > --- a/Src/string.c > +++ b/Src/string.c > @@ -126,9 +126,16 @@ mod_export char * > zhtricat(char const *s1, char const *s2, char const *s3) > { > char *ptr; > - size_t l1 =3D strlen(s1); > - size_t l2 =3D strlen(s2); > + size_t l1, l2; > =20 > + /* String duplicate fallback to prevent NULL derefs */ > + if (!s1 && !s2) > + return dupstring(s3); > + if (!s1) > + l1 =3D 0, s1 =3D s2; > + else > + l1 =3D strlen(s1); > + l2 =3D strlen(s2); > ptr =3D (char *)zhalloc(l1 + l2 + strlen(s3) + 1); > strcpy(ptr, s1); > strcpy(ptr + l1, s2); > --=20 > 2.15.1 --=20 Joey Pabalinas --4tv5vodbixrm253e Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEKlZXrihdNOcUPZTNruvLfWhyVBkFAlpbd3cACgkQruvLfWhy VBm2qQ//Ttpcul0MjeTP5s5UTalZcaP1Fg5S+TfMLpUSrUL+frMTbRcMS0+e/DM9 RAeUnN/FiEJk8BWK8sgpAwpXYZCyDY3x1DiN7eP3eNedRzAwkRqw57jSMpdBDJJi COPIjlDzB0tOvD6EPhsQnqvDfEY1qlGhyEG8eri/eR8kz83lRu/Xs1berRvWHKmN NtrNHNkDCdqSHMCmvO1bEux0HUq1XpO2AXNyAUTx/0a7Ku4v55CORc/yNARrxZns ilKqL6NV7hyPO4vbloifmOW4Akf1fmUGE76lu6jPcPqTZteDRQa25VeRwSiUrXKd fNWZvW/bOH3dbDljKhQcwJEhNET0F9FYf9R53gSkhU/7f8hGR8cNOYC0Ca+CRHF3 Ekrt2IroSlstbRnSrSSX7AkXgCkc9fy62QIBDT+JY1YEmpKPlZIc968sZAxr353h 5VdFjGRHN5nQc/Y0xuUwzfzchSjdWdh3nYHO7z4KOR7rXtMEv7hfAk2NJ2x1I7ig IynZUkj/zMXT8/o2F7t433ADK3O/Ty4ZxApO53j6ghU9sB9xrw0zB5mt6cJEyFJT puW4rnl6GfcKdxKg1GktKX2x+RDWN9/c34i86jd+DccvMG2hqKgZPQj8ofx5R6pA /mr3R3+E7tCYJAvZkGvmmYzlo/+UKm2BDgTmOEiJ3N6J3waHkxE= =uHf/ -----END PGP SIGNATURE----- --4tv5vodbixrm253e--