From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 27E13389AC5E for ; Mon, 10 Jan 2022 12:42:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 27E13389AC5E Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-190-poWep4qDPNmQI3URb5jBWQ-1; Mon, 10 Jan 2022 07:42:35 -0500 X-MC-Unique: poWep4qDPNmQI3URb5jBWQ-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C04968042E0; Mon, 10 Jan 2022 12:42:34 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.39.192.102]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A3D7669CB5; Mon, 10 Jan 2022 12:42:33 +0000 (UTC) From: Florian Weimer To: Wilco Dijkstra via Libc-alpha Cc: Noah Goldstein , Wilco Dijkstra Subject: Re: [PATCH v2 3/7] string/test-str*cmp: remove stupid_[strcmp, strncmp, wcscmp, wcsncmp]. References: Date: Mon, 10 Jan 2022 13:42:31 +0100 In-Reply-To: (Wilco Dijkstra via Libc-alpha's message of "Mon, 10 Jan 2022 11:42:43 +0000") Message-ID: <87zgo3yd6w.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-6.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Mon, 10 Jan 2022 12:42:39 -0000 * Wilco Dijkstra via Libc-alpha: > Hi Noah, > >> These implementations are incorrect. There may be a mismatch in s1/s2 >> before invalid memory but no null CHAR / length boundary. > > This is not true, see > eg. https://en.cppreference.com/w/cpp/string/byte/strcmp. Most string > functions require that the string is correctly terminated. There are > only a few exceptions (memchr IIRC), and several generic > implementations use strlen or strnlen before the main loop. I am not sure if those are bugs. Don't we support non-array usage in these functions as an extension? At least for strncmp and strnlen and their wide counterparts. C11 is pretty clear that strncmp operates on arrays, so this is an extension. Thanks, Florian