Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp3271843lfo; Mon, 23 May 2022 00:24:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxocNTFl1coZLsjpQ8GLYVxdLb7MXqABSe5Q3hMBAcq9r6OqymKEvqXXzGv/l6Yjo1XZ1JJ X-Received: by 2002:a17:902:8f86:b0:162:22ff:496b with SMTP id z6-20020a1709028f8600b0016222ff496bmr4175240plo.105.1653290668040; Mon, 23 May 2022 00:24:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653290668; cv=none; d=google.com; s=arc-20160816; b=T/bpqfd/DEFYIaeQUV4nt+2yRGFu+AB4/eKO9ENMdaAaz5rCr7BwOCBBrWghqBgDbz Yh0cIq0v2oE3AGgFPpfpqAbBAmcgq9KgsPbG5SgBgEhKlhWyh8NyW9zZ8gureojJC+ud krVlj+etekREpt9ii7ZYTYyJTFVkfPUE1z/v3mseJoCWNUGUDDQ9J5oNqQbT14Rus/O9 Hrm4dQKKu1ou5zeYdb6gtyhKhzDweqwbAM9ECwgFIt9owO4vYX6B2yJXKp6OlktlZGl/ qeyKFJ8hQKaCPRr77Ciyz8615HkeJu8ovKK5d9dhMUvNCPHGnkViAtZifK7NQC6qjLe0 8X8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=k3+ijwgm+z6idVsL7ESyG0p8+YmLB9RCmmnjhF4Bexs=; b=a1elxK7pCiioQXpx7VjyqcsHH6bTsqJEMBF8hB8suo4m1GRt9sJ/oFUFfwcow5c+Uj L/Q4vcKVKNoH71PKHZKMsgybbryiwvSlZ5DF8Z7ArwEmmOsTSNcLKUsjAg3+8cpylxPW hLz91sfpMlFfgq/PlWcLjitG9OcHqa/G0UVhKk9kIiIaVHjjysfXDUn3rSSmgHbdmSnO vXYGz6uQhqA1tDV4LRwLuoso4qSQ1aZuzYLTjxG8CXZ0/R+sbi0R/d4P0SnUwlhHJ56K //zqvmKygStw5M3/hJ6Coa86BQgqmD3Vj70tGT8pIRLGl+AGeqiLFEXtX1FAA3eQD2Mv Y+Rg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id bg3-20020a056a02010300b003c19e2b38f8si10606527pgb.421.2022.05.23.00.24.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 00:24:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A1E96C5D9A; Sun, 22 May 2022 23:38:31 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234210AbiETETe (ORCPT + 99 others); Fri, 20 May 2022 00:19:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231559AbiETET2 (ORCPT ); Fri, 20 May 2022 00:19:28 -0400 Received: from 1wt.eu (wtarreau.pck.nerim.net [62.212.114.60]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5C449EBAA0 for ; Thu, 19 May 2022 21:19:27 -0700 (PDT) Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 24K4JFAk005135; Fri, 20 May 2022 06:19:15 +0200 Date: Fri, 20 May 2022 06:19:15 +0200 From: Willy Tarreau To: Ammar Faizi Cc: "Paul E. McKenney" , Alviro Iskandar Setiawan , Linux Kernel Mailing List , GNU/Weeb Mailing List , Facebook Kernel Team Subject: Re: [PATCH v1 1/2] tools/nolibc/stdlib: Support overflow checking for older compiler versions Message-ID: <20220520041915.GC5001@1wt.eu> References: <20220519172116.283687-1-ammarfaizi2@gnuweeb.org> <20220519172116.283687-2-ammarfaizi2@gnuweeb.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220519172116.283687-2-ammarfaizi2@gnuweeb.org> User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ammar, On Fri, May 20, 2022 at 12:21:15AM +0700, Ammar Faizi wrote: > diff --git a/tools/include/nolibc/stdlib.h b/tools/include/nolibc/stdlib.h > index 8fd32eaf8037..92378c4b9660 100644 > --- a/tools/include/nolibc/stdlib.h > +++ b/tools/include/nolibc/stdlib.h > @@ -128,10 +128,9 @@ void *malloc(size_t len) > static __attribute__((unused)) > void *calloc(size_t size, size_t nmemb) > { > - void *orig; > - size_t res = 0; > + size_t x = size * nmemb; > > - if (__builtin_expect(__builtin_mul_overflow(nmemb, size, &res), 0)) { > + if (__builtin_expect(size && ((x / size) != nmemb), 0)) { Ah, that approach is even better than mine, I'm seeing that on x86 the compiler simply checks the overflow flag after the multiply, that's perfect! Acked-by: Willy Tarreau Willy