From patchwork Fri Aug 22 15:26:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 118763 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 29A103860006 for ; Fri, 22 Aug 2025 15:26:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 29A103860006 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=eFUYIEtH X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id D4A8A3858CB6 for ; Fri, 22 Aug 2025 15:26:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D4A8A3858CB6 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D4A8A3858CB6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1755876378; cv=none; b=gKCoPlYEERiWLeuMoNSPWzwHKHBJL8ab/qF3TU0WKYWKqwrDtqNl+bhT7oEkib71v1OWBN0S9xm9KY4dS8BCNzBO+FgC0fOAhovr7fWoP2Gc3x/azzfObeuPL7XNSZ1PH8I1URXbNUhV20qEjrqqjuyWiAVcMstEaZJe7wS9ZhA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1755876378; c=relaxed/simple; bh=IMDiKJK47lGwJYCOVfe3+iaEZWz32VQ+x9UH26tXVzY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Rf5q5KG+eoLhyz+csKBvz7ClUpbnx4R0XRkzIoaiYTqADQNLjATZMEDPC6a7hgEb0RsVWaR3yAW1HC6ps6ojcQhoKO0meTnjTM8liVwdNgHb7XUXdcBGK9aQ4LXbLXDr4qefIyOjl9/BeQN85Hq/r8XWQj7R+z1lSj8U5CNz8Q8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D4A8A3858CB6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755876378; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=1QTWC5/yueR64IkSVZXdM5G4835ZILvidYNq/RnMSgs=; b=eFUYIEtHyUcsW9GRri5WlzMqXyxDfIJuaLfn0YuU1rOaY4V6cB5oTaHu8wJSxzJI0Huu0g PQLHzcjDm180AIuQltibko8I7croQcrbwpsCihMTlc7/TldqR1BxB2MSYuTePdChvCxekL WquDoXQSBfApLnMZ3445wXoryx+1aTg= Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-650-VfP05SepN_a9-bVNByHNCQ-1; Fri, 22 Aug 2025 11:26:17 -0400 X-MC-Unique: VfP05SepN_a9-bVNByHNCQ-1 X-Mimecast-MFC-AGG-ID: VfP05SepN_a9-bVNByHNCQ_1755876376 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3096319560AF for ; Fri, 22 Aug 2025 15:26:16 +0000 (UTC) Received: from localhost (unknown [10.44.22.2]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DC20F197768E; Fri, 22 Aug 2025 15:26:15 +0000 (UTC) Received: by localhost (Postfix, from userid 1000) id 4DC6E5077C4B; Fri, 22 Aug 2025 17:26:12 +0200 (CEST) From: Dodji Seketeli To: libabigail@sourceware.org Cc: fche@redhat.com Subject: [PATCH, applied] elf-reader: Use -1 as a sentinel value for file descriptors Organization: Red Hat / France X-Operating-System: AlmaLinux 9.6 X-URL: http://www.redhat.com Date: Fri, 22 Aug 2025 17:26:12 +0200 Message-ID: <87y0rbv0mj.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 9g7hZjP2GIV9vhuKZq-Ro8fVxkzB7ewelA9e-ueBR88_1755876376 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_NONE, 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: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces~patchwork=sourceware.org@sourceware.org Hello, In the code of abg-elf-reader.cc, the value 0 is used as a sentinel value to signify that a given file descriptor is not set. Because POSIX allows 0 as a normal file descriptor value, this patch uses -1 as a sentinel value. * src/abg-elf-reader.cc (reader::priv::alt_{ctd,dwarf}_fd): Initialize to -1 instead of 0. (reader::priv::{initialize, clear_alt_dwarf_debug_info_data, clear_alt_ctf_debug_info_data}): Likewise. Signed-off-by: Dodji Seketeli Applied to the mainline. --- src/abg-elf-reader.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/abg-elf-reader.cc b/src/abg-elf-reader.cc index f770b858..48618e01 100644 --- a/src/abg-elf-reader.cc +++ b/src/abg-elf-reader.cc @@ -137,9 +137,9 @@ struct reader::priv // and make the DWARF reference it in here. Dwarf* alt_dwarf_handle = nullptr; string alt_dwarf_path; - int alt_dwarf_fd = 0; + int alt_dwarf_fd = -1; Elf_Scn* ctf_section = nullptr; - int alt_ctf_fd = 0; + int alt_ctf_fd = -1; Elf* alt_ctf_handle = nullptr; Elf_Scn* alt_ctf_section = nullptr; Elf_Scn* btf_section = nullptr; @@ -182,11 +182,11 @@ struct reader::priv dwarf_handle = nullptr; alt_dwarf_handle = nullptr; alt_dwarf_path.clear(); - alt_dwarf_fd = 0; + alt_dwarf_fd = -1; ctf_section = nullptr; alt_ctf_section = nullptr; alt_ctf_handle = nullptr; - alt_ctf_fd = 0; + alt_ctf_fd = -1; } /// Initialize the debug info root path. The format of this path is @@ -271,7 +271,7 @@ struct reader::priv void clear_alt_dwarf_debug_info_data() { - if (alt_dwarf_fd) + if (alt_dwarf_fd != -1) { if (alt_dwarf_handle) { @@ -279,7 +279,7 @@ struct reader::priv alt_dwarf_handle = nullptr; } close(alt_dwarf_fd); - alt_dwarf_fd = 0; + alt_dwarf_fd = -1; } alt_dwarf_path.clear(); } @@ -305,10 +305,10 @@ struct reader::priv void clear_alt_ctf_debug_info_data() { - if (alt_ctf_fd) + if (alt_ctf_fd != -1) { close(alt_ctf_fd); - alt_ctf_fd = 0; + alt_ctf_fd = -1; } if (alt_ctf_handle) {