Received: by 2002:ac8:156:0:b0:3e0:cd10:60c8 with SMTP id f22csp820039qtg; Thu, 6 Apr 2023 02:13:58 -0700 (PDT) X-Google-Smtp-Source: AKy350YModcRX7S1pxSdHAtWhWSZcyzOBWZ6rnEVFWNdvyzw6LifHD6SrD3JqVSYRdRz2chmVL+l X-Received: by 2002:a17:906:4e86:b0:947:3330:c97e with SMTP id v6-20020a1709064e8600b009473330c97emr5781962eju.71.1680772438078; Thu, 06 Apr 2023 02:13:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680772438; cv=none; d=google.com; s=arc-20160816; b=idjx+SWEFPSe6jmwHuCTR+LomyyLlXq5HxkjgJmIGSu/TOki2N9Jv6KmgV7jlociZX uLapEuGMidfK2OabiDIPnFJC+6/holL1RrX7aT4FS/tKhPGJvzJ7gHetpREAyz+F+mV1 rfU5VaZQqSpsQYedqyDFa+vYbXTxvrd9Px7yaalz4s2Y5gxIA5uo37a4XkrwJOjY12Ah M9wxR+uZlGO/5GhGiOqy+ZNaMq1mygyQ46RtemNYI1QK6IwTZb06lq0xA4wZbDlEft3Z W2piJ5/3XMdJuywLeGj4sizhJz8vhxuAmaJzSRFkhjzISXja4DVlzmNI0uTVQjc8PV3d ezhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=8kd1BcfwPPSqwXTX0SEVb5soTBP6qJhq+QXHtHsYn9Y=; b=Ue8dvUp+bPf5ahDJw+j2RS+BqIXCFmF9jvaCyXGRhC6dHJLwQV0Ygdxo9QXfxBJPTx 3lc6TfSXN/KJXSxZ0mOhSod1O33gQ7M/GsvnORarCmFc0lDMwT1IDW5u+1uhyEwquvxu VskVzwO6ysds0LcLg3kc4ytrdRV60hOwpk14AMPJ92ne0WZPNJhnpRGz03KNRTmhZcB9 HUW1JeWLqaUmVJ+1TUMOtQvWnuO+hLKpsk+v2S1MJwVOmkqRySk/+EnPqPZhQB4Q/D/b AnUMPVQwvw8SGRDudXa+ueifM0gPtzREkAIEIj0d4Y5C8pJ2QRDbRMwIvDP7QfUG1E1b b+bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=a++H6iu7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sf20-20020a1709078a9400b0092fb40179efsi755942ejc.733.2023.04.06.02.13.33; Thu, 06 Apr 2023 02:13:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=a++H6iu7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236293AbjDFJL5 (ORCPT + 99 others); Thu, 6 Apr 2023 05:11:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235867AbjDFJLt (ORCPT ); Thu, 6 Apr 2023 05:11:49 -0400 Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 19CDC198 for ; Thu, 6 Apr 2023 02:11:49 -0700 (PDT) Received: by mail-yb1-xb35.google.com with SMTP id h198so1686888ybg.12 for ; Thu, 06 Apr 2023 02:11:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680772308; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=8kd1BcfwPPSqwXTX0SEVb5soTBP6qJhq+QXHtHsYn9Y=; b=a++H6iu7o/Cl0qisj3TeHIvqYQ1G2yInrxtOqcuj+73vykQfjPOzZ59oE+o6MpUfHl cDN/C2oe8jFPpaPIx9kvb6uUaSDAfhswh1ZaMcmOTDLfjgcQTTipom/KagLe1f0rkHA6 SD2rv1EGBznEj8ImNCMljoM8bbpFMaZwyx+xflXOCue5CXK0N1O3NyaHoD2yhfDcqe+M g0LUPutgX7NXar8Mvq+ekBGjq4c5wS6Vwc2OCkts5qGym2W2480J1OcJp7RYRBmeUKDS yd5+xcCSU/NjiCQsmoxoFJaCA/SShUWYlOosVPErN5dGrPPOGoPBRCJb2Uv5q7wSYrjQ upLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680772308; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8kd1BcfwPPSqwXTX0SEVb5soTBP6qJhq+QXHtHsYn9Y=; b=cD0RlNXQdMCm3HpX/OMnqYxWl2gj85aUUQXPUA5SA9KKpvd0gJUfQ0aQZO5iThxfc3 ornR9j2TBY8McF50hr0bJC0VGJbp8EEuw99/HYFk3BzG64vuG2QqlytZCf0BRz/sXSaF 33AKmfuVe+UQC4fxm7/R6+E2CSXaW+XBA5aIV6hQbO/YeoMoSisUqfg3lnfDbugo3t/l yacHeT+XvRgu73YJFoAKoQZCcvHX8obY1FnWHI9I89MTYT6qM1Tu6FR4Bzh9IkMzLSSi jA1KtvcSqFBOOF5xYb+5kc0iZeBHtsrfFBZh4VJdeDA6Ww5KYXyMQyVVY0RV01iwI7DE hziQ== X-Gm-Message-State: AAQBX9dTrGqhIIqzd9+jNw3K7yJoggO09xmOd/fmDxN+di0HXdPlHPvH OnMDhiBw7bVPIW1Kf29A1tl8dXl2E5+A6cEQwtBLSQ== X-Received: by 2002:a25:2786:0:b0:b75:760a:966b with SMTP id n128-20020a252786000000b00b75760a966bmr1576483ybn.23.1680772308148; Thu, 06 Apr 2023 02:11:48 -0700 (PDT) MIME-Version: 1.0 References: <20230405235832.never.487-kees@kernel.org> <20230406000212.3442647-3-keescook@chromium.org> In-Reply-To: <20230406000212.3442647-3-keescook@chromium.org> From: Alexander Potapenko Date: Thu, 6 Apr 2023 11:11:09 +0200 Message-ID: Subject: Re: [PATCH 3/9] string: Add Kunit tests for strcat() family To: Kees Cook Cc: linux-hardening@vger.kernel.org, Kees Cook , Andy Shevchenko , Cezary Rojewski , Puyou Lu , Mark Brown , Josh Poimboeuf , Peter Zijlstra , Brendan Higgins , David Gow , Andrew Morton , Nathan Chancellor , Zhaoyang Huang , Randy Dunlap , Geert Uytterhoeven , Miguel Ojeda , Nick Desaulniers , Liam Howlett , Vlastimil Babka , Dan Williams , Rasmus Villemoes , Yury Norov , "Jason A. Donenfeld" , Sander Vanheule , Eric Biggers , "Masami Hiramatsu (Google)" , Andrey Konovalov , Linus Walleij , Daniel Latypov , =?UTF-8?B?Sm9zw6kgRXhww7NzaXRv?= , linux-kernel@vger.kernel.org, kunit-dev@googlegroups.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-15.7 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,ENV_AND_HDR_SPF_MATCH, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=unavailable 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 > +static void strncat_test(struct kunit *test) > +{ > + char dest[8]; > + > + /* Destination is terminated. */ > + memset(dest, 0, sizeof(dest)); > + KUNIT_EXPECT_EQ(test, strlen(dest), 0); > + /* Empty copy of size 0 does nothing. */ > + KUNIT_EXPECT_TRUE(test, strncat(dest, "", 0) == dest); > + KUNIT_EXPECT_STREQ(test, dest, ""); > + /* Empty copy of size 1 does nothing too. */ > + KUNIT_EXPECT_TRUE(test, strncat(dest, "", 1) == dest); > + KUNIT_EXPECT_STREQ(test, dest, ""); > + /* Copy of max 0 characters should do nothing. */ > + KUNIT_EXPECT_TRUE(test, strncat(dest, "asdf", 0) == dest); > + KUNIT_EXPECT_STREQ(test, dest, ""); > + > + /* 4 characters copied in, even if max is 8. */ > + KUNIT_EXPECT_TRUE(test, strncat(dest, "four\000123", 8) == dest); > + KUNIT_EXPECT_STREQ(test, dest, "four"); > + KUNIT_EXPECT_EQ(test, dest[5], '\0'); Maybe also add a test case for strncat(dest, "four", 4) that checks that the fourth byte of dest is not 0?