From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 4B4DF3858D29 for ; Mon, 15 Mar 2021 10:20:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4B4DF3858D29 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tdevries@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 5CA0AAE37; Mon, 15 Mar 2021 10:20:11 +0000 (UTC) Subject: Re: [PATCH] Fix UBSAN reported for Libreoffice so files. To: =?UTF-8?Q?Martin_Li=c5=a1ka?= , dwz@sourceware.org Cc: Mark Wielaard , Jakub Jelinek References: <7100560d-5973-8d34-c486-187c7dda21af@suse.cz> From: Tom de Vries Message-ID: <5c00bcd8-ed86-3b90-5e32-90dba3f80b7c@suse.de> Date: Mon, 15 Mar 2021 11:20:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <7100560d-5973-8d34-c486-187c7dda21af@suse.cz> Content-Type: multipart/mixed; boundary="------------5FEB83A8A35CC5226FDD88BC" Content-Language: en-US X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, NICE_REPLY_A, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: dwz@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Dwz mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Mar 2021 10:20:13 -0000 This is a multi-part message in MIME format. --------------5FEB83A8A35CC5226FDD88BC Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit On 3/15/21 8:48 AM, Martin Liška wrote: Thanks for the patch, committed as attached. Thanks, - Tom --------------5FEB83A8A35CC5226FDD88BC Content-Type: text/x-patch; charset=UTF-8; name="0001-Fix-UBSAN-reported-for-Libreoffice-so-files.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="0001-Fix-UBSAN-reported-for-Libreoffice-so-files.patch" Fix UBSAN reported for Libreoffice so files Use 1U in left shifts in bitvector_set_bit and bitvector_bit_p to avoid undefined signed left-shift behaviour. Fixes: dwz.c:9041:28: runtime error: left shift of 1 by 31 places cannot be \ represented in type 'int' #0 0x405ad3 in bitvector_bit_p dwz.c:9041 #1 0x405ad3 in create_import_tree dwz.c:9528 #2 0x405ad3 in dwz dwz.c:15445 #3 0x407517 in dwz_files dwz.c:16871 #4 0x407517 in main dwz.c:16985 #5 0x7ffff6a8eb24 in __libc_start_main ../csu/libc-start.c:332 #6 0x4086dd in _start (dwz+0x4086dd) dwz.c:9032:21: runtime error: left shift of 1 by 31 places cannot be \ represented in type 'int' #0 0x405a83 in bitvector_set_bit dwz.c:9032 #1 0x405a83 in create_import_tree dwz.c:9530 #2 0x405a83 in dwz dwz.c:15445 #3 0x407517 in dwz_files dwz.c:16871 #4 0x407517 in main dwz.c:16985 #5 0x7ffff6a8eb24 in __libc_start_main ../csu/libc-start.c:332 #6 0x4086dd in _start (dwz+0x4086dd) 2021-03-15 Martin Liska * dwz.c (bitvector_set_bit, bitvector_bit_p): Use 1U in left shift to avoid undefined signed left-shift behaviour. --- dwz.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dwz.c b/dwz.c index cd06dc6..d41e26e 100644 --- a/dwz.c +++ b/dwz.c @@ -9029,7 +9029,7 @@ bitvector_set_bit (BITVECTOR_TYPE *vector, unsigned idx) { unsigned div = idx / (sizeof (BITVECTOR_TYPE) * 8); unsigned mod = idx % (sizeof (BITVECTOR_TYPE) * 8); - vector[div] |= (1 << mod); + vector[div] |= (1U << mod); } /* Test bit IDX in bitvector VECTOR. */ @@ -9038,7 +9038,7 @@ bitvector_bit_p (BITVECTOR_TYPE *vector, unsigned idx) { unsigned div = idx / (sizeof (BITVECTOR_TYPE) * 8); unsigned mod = idx % (sizeof (BITVECTOR_TYPE) * 8); - return (vector[div] & (1 << mod)) != 0; + return (vector[div] & (1U << mod)) != 0; } /* Clear at least bits [A, B] in VECTOR, possibly more. */ --------------5FEB83A8A35CC5226FDD88BC--