From patchwork Mon Jul 6 08:37:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcus Poller X-Patchwork-Id: 138539 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2DB944BA2E08 for ; Mon, 6 Jul 2026 08:47:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2DB944BA2E08 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=crystaldown.de header.i=@crystaldown.de header.a=rsa-sha256 header.s=202506r header.b=ocEsORt0; dkim=pass header.d=crystaldown.de header.i=@crystaldown.de header.a=ed25519-sha256 header.s=202506e header.b=bgCDZcrK X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from solomon.in-ulm.de (solomon.in-ulm.de [217.10.14.45]) by sourceware.org (Postfix) with ESMTPS id DCB1A4BA5435 for ; Mon, 6 Jul 2026 08:47:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DCB1A4BA5435 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=crystaldown.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=crystaldown.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DCB1A4BA5435 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=217.10.14.45 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1783327645; cv=none; b=kSfsT7e9GKfwSgpUIp6ohTUaJdgzwo179HXRXiY+YUxrttMUZbVLMzSgfTBHxu1TIu9Fnyai/wvvhihk3yvn4lzWQDkhB64U6nCPPmqYva9I7SI7ty8lBnXi+sc+Muo7cM18ZOdwMNcpb/zOSpzuOjmX4JGL3oczaBOgz593onY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1783327645; c=relaxed/simple; bh=K+iOoe289XCYmiIevyHc5s/onH13s4EqGPdEDIAIS3s=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=WUGIwgpZXUxPbhvKIIl5XDYOPAcFsM9VZx2geHAsWaKLWhxaeA0CjgV4V3tOaNQxawX0xHqhq5Qf9d/YiCa8tuEuJXB0+qBbd+C6V1PUb6qEivPeiuteCCHCLzHymDDEl312nU7WHR4qAVu0CZdvmoVB8Td9q60/RNEVh8uDNSI= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=crystaldown.de header.i=@crystaldown.de header.a=rsa-sha256 header.s=202506r header.b=ocEsORt0; dkim=pass header.d=crystaldown.de header.i=@crystaldown.de header.a=ed25519-sha256 header.s=202506e header.b=bgCDZcrK DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DCB1A4BA5435 DKIM-Signature: v=1; a=rsa-sha256; s=202506r; d=crystaldown.de; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1783327518; bh=dYj8xRQnCfyOQ0Fg4Qaet2s 6CbiHJ2lesYaNsfrkfZw=; b=ocEsORt08EBcUQzD6pOGq8gwJx5qojgl+Re1BL59yZii3hnyWG 3YLkSOb8VbqKOMAAqf9zfa1ppjIbA6yIDuPsanAw9cp+lJwrMNp3lr1ky+TYe++gF6z9tFvn4s3 T1zIP5r5Ad4j1OBpwY46kDNQOrY6li8OoHAKqAEtdV9lgdzjE/p9ZpHMU7X+6XSi3TUT7kcC4Zh bCkP3dLRtmozOTryBFJaPvFyc1WQCWd5ICnoHkaBLuERQoJYWNcCZCL0Yo75Bv3hOP/AqADNTQf lEBcuEU421iQdTKFL/DjCzpVPKVrvE9GdoqG2JfOnnZUwYBxREZnvz0QQ9SoiaDecZQ==; DKIM-Signature: v=1; a=ed25519-sha256; s=202506e; d=crystaldown.de; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1783327518; bh=dYj8xRQnCfyOQ0Fg4Qaet2s 6CbiHJ2lesYaNsfrkfZw=; b=bgCDZcrKnN4lmSWnUTBR6Q/KGiXOcka4+jqeunf4yVyPOlkWLK xHLYlDxR5R6rZnyeP1IWNU9U80p3Zr9OoEBA==; From: Marcus Poller To: libc-alpha@sourceware.org Cc: Marcus Poller Subject: [PATCH v4.] nss: Use reallocarray to prevent integer overflow in getaddrinfo (bug 33977) Date: Mon, 6 Jul 2026 10:37:32 +0200 Message-ID: <20260706084508.987683-1-h-glibcdev@crystaldown.de> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org replacing realloc by reallocarray introduces a basic overflow check. (old + count) might still overflow, but since the NSS backend is trusted, we do not consider this to be a valid case. Reviewed-by: Adhemerval Zanella --- v1: https://inbox.sourceware.org/libc-alpha/77a01db3-5619-48b8-9682-85f11cc472bc@crystaldown.de/ v2: iterated on Arjuns and Andreas review comments v3: re-submission to support existing tooling v4: moved from reallocarray to __libc_reallocarray due to a regression found by Adhemerval --- nss/getaddrinfo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nss/getaddrinfo.c b/nss/getaddrinfo.c index 4f6ac3358a..45b7f728a1 100644 --- a/nss/getaddrinfo.c +++ b/nss/getaddrinfo.c @@ -234,7 +234,7 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req, int family, array = array->next; } - array = realloc (res->at, (old + count) * sizeof (*array)); + array = __libc_reallocarray (res->at, old + count, sizeof (*array)); if (array == NULL) return false;