From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 2144 invoked from network); 24 Nov 2021 01:29:14 -0000 Received: from tb-ob0.topicbox.com (64.147.108.117) by inbox.vuxu.org with ESMTPUTF8; 24 Nov 2021 01:29:14 -0000 Received: from tb-mx1.topicbox.com (tb-mx1.nyi.icgroup.com [10.90.30.61]) by tb-ob0.topicbox.com (Postfix) with ESMTP id 177542CA09 for ; Tue, 23 Nov 2021 20:29:11 -0500 (EST) (envelope-from bounce.mM7b2bbb4acbd0bc7b5c5c7f69.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx1.topicbox.com (Postfix, from userid 1132) id D36E0861BA1; Tue, 23 Nov 2021 20:29:11 -0500 (EST) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fOj2bpqz header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=conor.williams@gmail.com smtp.helo=mail-oi1-f169.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1637717351; bh=brkbSRBiqMoyfiEp MmI6Hhm1O1cd0aztEgmhj5ttRB8=; b=HwSXdrb0MAdpuhf0Hcz0dkfoIEjTyV2H hf4NLyFDzstrRMquzkYIRh2RAGMeWoD1rsQHtZrCzaBFZEAGGCWxvfMPEiJYzGx0 q3zYML1r8rhe6oIkn3uCfsFK0lZOGQP1TAzMyY58/K9n+FKJ8RAWjO+NOc8pILle 2Wkivs3rdVQ= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1637717351; b=o7MiNtxlf1BZari1bp76AqbvIWwwuaFPJc9hm+N66uHg71eUHA 3IIAnasFqIrJ3v7Ne83OCOjPN6MRd8g62uipcN0OoJdM35Ce0nBDiPnqOvfpE0+T t9CWkwut1LgqyhgDPgPwYCt9mPox4BKr4BzsZwo5iTAfvnihrTgH2ajxI= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fOj2bpqz header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=conor.williams@gmail.com smtp.helo=mail-oi1-f169.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fOj2bpqz header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.167.169 (mail-oi1-f169.google.com); spf=pass smtp.mailfrom=conor.williams@gmail.com smtp.helo=mail-oi1-f169.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=7q68cekh; x-me-sender=none; x-ptr=pass smtp.helo=mail-oi1-f169.google.com policy.ptr=mail-oi1-f169.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; bh=g0v/UQpozTv4BGpKQe2Afv7+f1fp4gsgPQYoS3mcBnA=; b=nQUZvkffsAUr l5txkdcbD3lsQUzi1ZJGRmre6oJpOvDHHvuIxVKzZD3jz6dOOD06E4CxCzgleH40 48fnh7R+5vlDjHW+yoH2vXQFQOP93crwqLk6sIBYMTF5itWiqO7BGgGoznyY+q0F MVLBj7yVEw6D6pqNxpwShiRclgbUigo= Received: from tb-mx0.topicbox.com (localhost.local [127.0.0.1]) by tb-mx0.topicbox.com (Postfix) with ESMTP id 68E7C790100 for <9fans@9fans.net>; Tue, 23 Nov 2021 20:28:54 -0500 (EST) (envelope-from conor.williams@gmail.com) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id 9316F48E805; Tue, 23 Nov 2021 20:28:54 -0500 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1637717334; b=yWUHfHK56BG7jM2rm3st3gy5QTVLidaT5xP2EyxA1m0j0/Rdky yAJdqI6GRrXVTv9etgvbbCAcOmRWfmg0FnntCY94xD0gA3HPSLn3AUWQbdsOsJXB fL3ssQ3lIXuh2ydqFtcDlUVJDbuiyzvMdpRvlnmmOwKvpU2qswQzvriQWrOTfgf2 ZIBvsuCvLGM9Xc1ZozjVTYO1xY64wPxGF8h4PRXwkNoOh+cZ0SUPK2ifC0aSHQ9I KAXfbm4TXV49JNLNIRTouKYPv2y5vVXvQQVmZAmC4NHo/e6JWWoCEnsVO2RVlfba IdN4UUsy7fSuPTaTb11aKcgOrY8dniwIorBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type; s=arcseal; t=1637717334; bh=QvuZr9VQwgALC6d9kvzrLhOJM9zCHOsM71Aja4U5qyk=; b=yen89fowsjxm PhDCMEntA4/bIC+NqH4mY0jGrFo9HyIAkTZylaHNdSBkAdklkAigejk+O/9mX26i qnxjWTySP0ealI4TiVcs582+edTAj3arQRyMvLMroDVbvYd5EjApmumtDhk/Oxhb Me89K64/GPa7oYIA+BxHY+2fpMyBmiSzWbshwo96Sc8V7zUsdpVjOa1URUau1XgX 9n/dbsehCvupSsUYX2xkpE3b7hcXwsNIxZqA1inHqIMmZxmazGaT2X8anqKB0452 hpp7d9C981mAsr3ZAZme1lALu9ZvgkafUzMRs1ND/1+ElCXclyvrD+zvPiPTcjYE xgu3422RbQ== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fOj2bpqz header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.167.169 (mail-oi1-f169.google.com); spf=pass smtp.mailfrom=conor.williams@gmail.com smtp.helo=mail-oi1-f169.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=7q68cekh; x-me-sender=none; x-ptr=pass smtp.helo=mail-oi1-f169.google.com policy.ptr=mail-oi1-f169.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgedvuddrgedtucdltddurdegudelrddttddmucetuf doteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgs shgtrhhisggvpdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenuc fjughrpeggfhgjhfffkffuvfgtsegrtderredttdejnecuhfhrohhmpeevohhnohhrucgh ihhllhhirghmshcuoegtohhnohhrrdifihhllhhirghmshesghhmrghilhdrtghomheqne cuggftrfgrthhtvghrnheptdetvedtgeelgfdvuddtheeitdegffehjeffleetjeetjeel veejgfeuhefhveehnecuffhomhgrihhnpehfrhgvvghshhgvlhhlrdhorhhgpdhtohhpih gtsghogidrtghomhenucfkphepvddtledrkeehrdduieejrdduieelnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehinhgvthepvddtledrkeehrdduieejrdduieelpd hhvghlohepmhgrihhlqdhoihduqdhfudeiledrghhoohhglhgvrdgtohhmpdhmrghilhhf rhhomhepoegtohhnohhrrdifihhllhhirghmshesghhmrghilhdrtghomheq X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'conor.williams@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="conor.williams@gmail.com"; helo=mail-oi1-f169.google.com; client-ip=209.85.167.169 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx0.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Tue, 23 Nov 2021 20:28:53 -0500 (EST) (envelope-from conor.williams@gmail.com) Received: by mail-oi1-f169.google.com with SMTP id n66so1848069oia.9 for <9fans@9fans.net>; Tue, 23 Nov 2021 17:28:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=QvuZr9VQwgALC6d9kvzrLhOJM9zCHOsM71Aja4U5qyk=; b=7q68cekhEp6EYzWN3DOnmLrqPCfAyCQqWkPm63VDQ0vfjN0B0i+GRuCgUqRDoLbwVi ULnn9Aqbzc83gSI+ugQjdEg9mGOqFG9z68CG5T6qvSu8dExO5nkw1wih3rnBxLA7BGz+ K7jjzsKR68hfpKrJvBoLyHoU7KvqdvEmO3H183vIEsIb+Qem2fdn1E0kBZ0Ru+m9qrsd OxpbmFxEl83/O6VhToFxEt6yO7O+gKwXHnKbqKCzTkLou9jQ/bL1mTZclY63SJ5GvFVz ngo+Ss7Xzq50cq37+WB3sVlDSjroOGXbbG0E+2TUBc3notWlCKoiYJWjl60rk6QSSfO+ gzOw== X-Gm-Message-State: AOAM533FBDfDJlcKQQQOVQpAzBSzdPBi1D+xxAqS4ssPOI8vFBkDsVCT tpvf7o5d4IGoxlRUq/Lkkm1x4UNLoDZH41mmerVSkd/L0TM= X-Google-Smtp-Source: ABdhPJwZVosJBM3wR+blnPlz7BC0YNR6cApeOOtshI8qSbpnZ0kCWCpav6/P8mc3sVxDJIat8YJimeeWm4liAYK6Vro= X-Received: by 2002:a54:4381:: with SMTP id u1mr1955535oiv.70.1637717332732; Tue, 23 Nov 2021 17:28:52 -0800 (PST) MIME-Version: 1.0 References: <171b6946-5a63-f723-b2c9-713ffcfea9e@SDF.ORG> In-Reply-To: <171b6946-5a63-f723-b2c9-713ffcfea9e@SDF.ORG> From: Conor Williams Date: Wed, 24 Nov 2021 01:28:39 +0000 Message-ID: Subject: Re: [9fans] Fix sam regexp bug with metacharacters in classes To: 9fans <9fans@9fans.net> Content-Type: multipart/alternative; boundary="000000000000dc2d1805d17ec70b" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: e5e62ca2-4cc5-11ec-a214-dd701432baab Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UY2NiZGIyMGI2NzAwMDNhMS1NN2IyYmJiNGFjYmQwYmM3YjVjNWM3?= =?UTF-8?B?ZjY5Pg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: 7bit List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:M7b2bbb4acbd0bc7b5c5c7f69:1:AJAlICXYPo4Sxgao4MWtA7pizATFYFYIgtdUgTNGWjc --000000000000dc2d1805d17ec70b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable why on Gaia do you not have a Runemas_Incremented_By_One_To_Keep_A_Negative_Sub variable? apart from that, it looks okay... will tango it in later... /c:2022November!^N^M On Tue, Nov 23, 2021 at 8:27 PM adr wrote: > The code assumes runes are 16 bits long, not 21, creating faulting > code parsing classes. I.e. '/[\-]' will not match '-'. >=20 > This is the same fix already in 9front. >=20 > http://adr.freeshell.org/plan9/patches/sam_fix_metachars_on_classes.diff >=20 > --- /sys/src/cmd/sam/regexp.c Tue Apr 23 19:06:01 2013 > +++ regexp.c Tue Nov 23 15:01:18 2021 > @@ -53,8 +53,8 @@ > /* > * Actions and Tokens > * > - * 0x100xx are operators, value =3D=3D precedence > - * 0x200xx are tokens, i.e. operands for operators > + * 0x2000xx are operators, value =3D=3D precedence > + * 0x3000xx are tokens, i.e. operands for operators > */ > enum { > OPERATOR =3D Runemask+1, /* Bitmask of all operators */ > @@ -462,7 +462,8 @@ > exprp++; > return '\n'; > } > - return *exprp++|(Runemax+1); > + /* add a flag so metacharacters aren't interpreted */ > + return *exprp++|(Runemask+1); > } > return *exprp++; > } > @@ -498,11 +499,12 @@ > if((c2 =3D nextrec()) =3D=3D ']') > goto Error; > classp[n+0] =3D Runemax; > - classp[n+1] =3D c1; > - classp[n+2] =3D c2; > + /* remove possible flag from nextrec() */ > + classp[n+1] =3D c1 & Runemask; > + classp[n+2] =3D c2 & Runemask; > n +=3D 3; > }else > - classp[n++] =3D c1; > + classp[n++] =3D c1 & Runemask; > } > classp[n] =3D 0; > if(nclass =3D=3D Nclass){ >=20 ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Tccbdb20b670003a1-M7b2bb= b4acbd0bc7b5c5c7f69 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription --000000000000dc2d1805d17ec70b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
why on Gaia do you not have a Runemas_Inc= remented_By_One_To_Keep_A_Negative_Sub
variable?
apart = from that, it looks okay... will tango it in later...

/c:2022November!^N^M

On Tue, Nov 23, 2021 at 8:27 PM adr= <adr@sdf.org> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">The code assumes runes are= 16 bits long, not 21, creating faulting
code parsing classes. I.e. '/[\-]' will not match '-'.

This is the same fix already in 9front.

http://adr.freeshell.org/plan9/patches/sam_fix_metac= hars_on_classes.diff

--- /sys/src/cmd/sam/regexp.c   Tue Apr 23 19:06:01 2013
+++ regexp.c    Tue Nov 23 15:01:18 2021
@@ -53,8 +53,8 @@
  /*
   * Actions and Tokens
   *
- *     0x100xx are operators, value =3D=3D precedence
- *     0x200xx are tokens, i.e. operands for operators
+ *     0x2000xx are operators, value =3D=3D precedence
+ *     0x3000xx are tokens, i.e. operands for operators
   */
  enum {
        OPERATOR =3D Runemask+1,  /* Bitmask of al= l operators */
@@ -462,7 +462,8 @@
                     = ;   exprp++;
                     = ;   return '\n';
                }
-               return *exprp++|(Ru= nemax+1);
+               /* add a flag so me= tacharacters aren't interpreted */
+               return *exprp++|(Ru= nemask+1);
        }
        return *exprp++;
  }
@@ -498,11 +499,12 @@
                     = ;   if((c2 =3D nextrec()) =3D=3D ']')
                     = ;           goto Error;
                     = ;   classp[n+0] =3D Runemax;
-                    &nbs= p;  classp[n+1] =3D c1;
-                    &nbs= p;  classp[n+2] =3D c2;
+                    &nbs= p;  /* remove possible flag from nextrec() */
+                    &nbs= p;  classp[n+1] =3D c1 & Runemask;
+                    &nbs= p;  classp[n+2] =3D c2 & Runemask;
                     = ;   n +=3D 3;
                }else
-                    &nbs= p;  classp[n++] =3D c1;
+                    &nbs= p;  classp[n++] =3D c1 & Runemask;
        }
        classp[n] =3D 0;
        if(nclass =3D=3D Nclass){


------------------------------------------
9fans: 9fans
Permalink: https:= //9fans.topicbox.com/groups/9fans/Tccbdb20b670003a1-M5d4e6bea6c6908b388e51f= 0c
Delivery options: https://9fans.topicbox.com/gro= ups/9fans/subscription
= --000000000000dc2d1805d17ec70b--