From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com ([209.85.128.44]) by ewsd; Thu May 7 03:49:07 EDT 2020 Received: by mail-wm1-f44.google.com with SMTP id z6so5606151wml.2 for <9front@9front.org>; Thu, 07 May 2020 00:49:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:date:to:cc:subject:mime-version :content-transfer-encoding; bh=B3Cu/DRLvaQkgyXQ6Y9Gqt9AgClPbj83D3gb7BPwOZ8=; b=Orv9BwEDM2nOLL2gDI/cLTPefN/9c4/AnZImw99AfE1ieWZGLFhb5pG9QZ6VtftDBQ ixOGuLabFlbtpSjMpJU8DKrYzb06umG+DMxTUN+MHswT65emk/pw3v6mWXEwEgfyKXx7 V3lUHrbqCV0TDtqG4QG+GIdkMBEj4FuLqFsb+naqXIyHqzUvncmqWaDwknyjCaq/pFgD iWnNN9CW9EEPnDFQjUdOugbMqsh8fG0p0I/OxId7PWoy+9bueo2TJ5y3ARl7k2LNVG9u EYAYiVOKzH7ssHyvrfuZN7gJrSCchK6B20z8T4XaeuOIop+kLuL0dwvDNq9/qq4JrWPB Dicg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:date:to:cc:subject:mime-version :content-transfer-encoding; bh=B3Cu/DRLvaQkgyXQ6Y9Gqt9AgClPbj83D3gb7BPwOZ8=; b=LZVCFAIDoG0lMAEcAW0EQlmqyURAsSzBGd0t6X9ZB3WeUmQs03OpOFfj+INmh4OHe5 Hv0txYnvbhaY2KYomidKcs1fzYJLW3Pn5PXu3PAJpLuv0lXhT3c0ph1HdZzJUeHws0i5 Tj1Z4TN1+KggvGTQU14bNm9Z7x1xFFWgUFdjLedadONgmo8vZ1e8pNtmorLRQilLLMwf X4okfKwZfona46au5u8SncMBioPwrOS0iZH9+XYWYK1ojsnaFa53XaDt5o9SQ/RnULs6 Ta8f+VkXJtnqEfD6ZFGN0ouBXpfdjTR2n0zhnZ1UeHxazBjNXERtbIfKuf/6hmtUF4Gb ZI4g== X-Gm-Message-State: AGi0PuZyavdDTBhbITAa1Oj96FDI8TbTb8R9i9MIEVRa1GGaDn1Psgcp DebqWoUUc6fiUUo48QDKZAM= X-Google-Smtp-Source: APiQypJsNfIwmLagN02DZOVV4f047fejtXlfRnUi9C87lqDQdRneRfxWWHxrJs2oNcOqz39pN48Njg== X-Received: by 2002:a7b:c38b:: with SMTP id s11mr8884791wmj.55.1588837742775; Thu, 07 May 2020 00:49:02 -0700 (PDT) Return-Path: Received: from hades (lfbn-idf1-1-935-106.w86-238.abo.wanadoo.fr. [86.238.18.106]) by smtp.gmail.com with ESMTPSA id w9sm7348123wrc.27.2020.05.07.00.49.01 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 May 2020 00:49:02 -0700 (PDT) From: telephil9@gmail.com X-Google-Original-From: pme@gmail.com Message-ID: <7BC56C4EE66212C553EFF6B020551A32@gmail.com> Date: Thu, 7 May 2020 09:49:01 +0200 To: 9front@9front.org Cc: telephil9@gmail.com Subject: [PATCH] fix APE sscanf [ specifier MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: virtual service API-scale descriptor Hi, APE sscanf return value is wrong when using a [ specifier and there is no match. The following code highlights the issue (full example: http://okturing.com/src/8478/body) char s[2]; sscanf("H", " %1[Zz] ", s); // SHOULD NOT RETURN 1 This patch fixes the issue: --- diff -r 8006152d13d2 sys/src/ape/lib/ap/stdio/vfscanf.c --- a/sys/src/ape/lib/ap/stdio/vfscanf.c Tue Apr 28 20:51:19 2020 -0700 +++ b/sys/src/ape/lib/ap/stdio/vfscanf.c Thu May 07 09:44:39 2020 +0200 @@ -396,13 +396,14 @@ if(nn==0) return 0; else goto Done; } - if(!match(c, pat)) - break; + if(!match(c, pat)){ + nungetc(c, f); + return 0; + } if(store) *s++=c; nn++; } - nungetc(c, f); Done: if(store) *s='\0'; return 1; --- Regards, Philippe