From patchwork Mon Dec 5 15:11:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alejandro Colomar X-Patchwork-Id: 61476 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E6CCB38AA266 for ; Mon, 5 Dec 2022 15:19:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E6CCB38AA266 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1670253550; bh=kvwC/QCIv3eMATH92cAgR7ddWzID8UQtIARugq0b+T0=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=nmTkWELG3TkwbukIVCLyx6uu8n0lVcWbW1j6nvs8y4OGuBjzuNnd0qZZP/VSWBRWZ 4wFo69iFieSyz96C/tv0Moa3vh7ZbiWyhOGuClfZnrYE8i1Yd1Ml18jUgnXUTl5DE2 3ZzVi31NFOuBJORK9rDvqforD5Y4Q8a2hv+6Qt9Q= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id 3A48A3889E0B for ; Mon, 5 Dec 2022 15:18:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3A48A3889E0B Received: by mail-wr1-x42d.google.com with SMTP id w15so19074725wrl.9 for ; Mon, 05 Dec 2022 07:18:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kvwC/QCIv3eMATH92cAgR7ddWzID8UQtIARugq0b+T0=; b=NlzpBZVyuhhBZf2Y12T1JD+FVbB/cpIPz0ZMctT13vrzob+LUtbK4HLrOS8RqczY1I R4VB7JeDL0Ko6GmAlAVAfEMN86uzhPGi0h65lvgYAU6hVe+1f/HHa1rcl2OZsKCTIAH9 QNpcny/wIxFZwnWrC9bCLLSbmE3QJZKXQvVpVcHcKYC4a69cFb9BcX6ppx3R9Gv9MKP4 P5LN8DWmNfwBa1InBCEDfAPAnkmFiOsXjNvLVgt8YPs9+1zvHmDmG7d6Anwtj+MdhYgr 8ju5Jg+KWJqN+V7i2FSXoscJP7YRwgW+e5VslaVnYZpQHB4Vc2Hhu42PCEkR3axe4Lc4 VMZg== X-Gm-Message-State: ANoB5pnrqAjJoAm1aGk/7gbXHZ3Asn2NsvNwoOl2qfdhRdIvACFf1Qjd fkLTHc3Jc8g8u2IJrPZCKXoy86iGx2E= X-Google-Smtp-Source: AA0mqf4/XkPKnzKenVt2LYtqEv1pysMUb1IgGq7d1xGge4gXa8nwjVQ1ilDhA083ercCzujw9wnQnw== X-Received: by 2002:adf:e5c6:0:b0:242:5c5d:b393 with SMTP id a6-20020adfe5c6000000b002425c5db393mr4334540wrn.403.1670253528095; Mon, 05 Dec 2022 07:18:48 -0800 (PST) Received: from asus5775.alejandro-colomar.es ([170.253.36.171]) by smtp.googlemail.com with ESMTPSA id u1-20020a05600c00c100b003d1e34bcbb2sm1290597wmm.13.2022.12.05.07.18.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Dec 2022 07:18:47 -0800 (PST) X-Google-Original-From: Alejandro Colomar To: linux-man@vger.kernel.org Cc: Alejandro Colomar , libc-alpha@sourceware.org Subject: [PATCH] strcat.3: SYNOPSIS: Fix the size of 'dest' Date: Mon, 5 Dec 2022 16:11:03 +0100 Message-Id: <20221205151102.13042-1-alx@kernel.org> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alejandro Colomar via Libc-alpha From: Alejandro Colomar Reply-To: Alejandro Colomar Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" I had a mistake when adding VLA syntax to this prototype. From this fixed prototype, it's visible how broken the design for this function is. Next move is to kill this function. Cc: Signed-off-by: Alejandro Colomar --- Hi! I'm continuing my indiscriminated shooting against broken functions. I don't remember if I ever used it, but it got me surprised for how much broken it is. Please kill this function in glibc. The updated prototype using a bit of imagination to overextend VLA syntax to show how it behaves, shows how broken it is. It is impossible to use this function correctly (okay, it you try hard, you can, but only for the pleasure of using it without crashing, not for anything useful). Cheers, Alex man3/strcat.3 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/man3/strcat.3 b/man3/strcat.3 index a4a376ba9..61d3e54f1 100644 --- a/man3/strcat.3 +++ b/man3/strcat.3 @@ -20,9 +20,8 @@ .SH SYNOPSIS .B #include .PP .BI "char *strcat(char *restrict " dest ", const char *restrict " src ); -.BI "char *strncat(char " dest "[restrict ." n "], \ -const char " src "[restrict ." n ], -.BI " size_t " n ); +.BI "char *strncat(char " dest "[restrict strlen(." dest ") + strnlen(." n ") + 1]," +.BI " const char " src "[restrict ." n "], size_t " n ); .fi .SH DESCRIPTION The