From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 94CD4384B013 for ; Fri, 26 Apr 2024 20:20:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 94CD4384B013 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 94CD4384B013 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1714162844; cv=pass; b=ttJRaKL7GFC1KXOmJkXUpyxui4fW1s9Ii4HZpcyMaUlsL8k1CtJYsVESdcTi9Acw+XD/VcmeOR4en0BQ56g3/B6Yc/KaVzfGXUzNOnSDQZQcjoFnTfkUSPA2HJ6fz8z8oD7PMW8FLRiaOx9Wn0Ty7i42Q788YsCzNjGaghT8qx8= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1714162844; c=relaxed/simple; bh=xlVFl/FrQDUNHa68P08w5f2edGEUDXVKyoHF+tJOVQM=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=PeDSv8wr++6D8worgiu4jPCuTr55LEJbYopVkA/UEZHw35TZls2TCtHoPfirSqdYEYe4g8TKp/2F/4CsZZAz7QEI6ThQVN/oaB0XyBDxKXPUwkthc8O19aemppdXL7NVbN8L9yqU83voTu0v61RDO4oqZu5xRSlRENIqIb7hiaY= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 43QKABRO002707 for ; Fri, 26 Apr 2024 20:20:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=ZzbolgyLezaTw8Tg30Fb49avswcKt7JmEtAgOtEvs6U=; b=Tf5QGaM5g6gUzmAGyL9hrjN3Z45NEpstMmUJ1rZjqg+C3lv8sIUzZ7A9yVosuPYz+TrW trjC+6X+OKVyPyKNfJWATG3dD90YNlmIL25RZIppy/15+OupC36Ohmt8Alkr5rVDjFjf kWBgaB2DWa5hH5En/bbyWyA0/kyYeg7LwyeFYnNsMZjzqKy1lPfMND5/pV1GPtUHXpAB EXe0CADr66PWHzTyJwqRPv/Sq/hUn7lRZBu/WJbI1jLyIGJfngXt1wKyYIeHExVuFo8a zAOocjOA+k9JHaw9g7q7Fl6cO8b2FCfowzaAg4efb9T/3sm7xlvdqX5M091U5pS3SR+3 2A== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3xm5re6c3f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 26 Apr 2024 20:20:40 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 43QIPQgX019664 for ; Fri, 26 Apr 2024 20:20:40 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3xpbf83vad-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 26 Apr 2024 20:20:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fIXlTtvuMl5XVExsKd/FxrSkP2mfNAgDvBbpFYhIIfQ8US36H9xZi/ROPAsUHQAS0/x9sti+8MXt9eh76AkJ5vXVl40W/n09snihqsusZSjC8/6ADAbOzfS3On2JI1+wLIsI3BhlBDPMor+R+ddwBzuFtku3G0eu7nww6FzziFfiBtUhKwyngbSwPHQc0+LvP/KE012MoaUxC1Mxj+3BWrhMEh+lqjk18DdskbDyrtiI+k5LSFKFkJoc99ZS2Pp3i6DLVa4rEPSYuI5Xi/8XqPNGXgcr8EVi/fQGiKY+bOwdqPXI40E9uzVmlI5YR5nQTUtC3jnfBSHgR/MTAIIZSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZzbolgyLezaTw8Tg30Fb49avswcKt7JmEtAgOtEvs6U=; b=GlOUNn5YsxLaHtxVXBqAk+vMZLAWms9qnx0p540BmXgq8KnaKSF+drlxlRwgq4GV0YTyBJBItBJMBuRzNtFt20AwLMIY+L4+HvGiOwvk9PV6ws/2/EPLXmo/i88mz70RR2vogt1/7qCMWeGjN6VMBUXrU8A+1FQ2Q9kOn/dbPX6METE79B5rZskvot1etV2nlsIYn/CDLvRiBK4fQgLMyV+6d/9UMEhvdMEn1e6huiTpYOBWUFGtKcNkyTQSG2uxWybJLFRnN2ig+CfrPHU45esoBJs5pvDzCq0r1mjnPLCXFGT54HSvL6OVy9BH3c4IyehJ3lA7Uz9FyG3jYK5lCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZzbolgyLezaTw8Tg30Fb49avswcKt7JmEtAgOtEvs6U=; b=H6PIUvTh+DcDYMQT4bpAQhBqDc+Rvul0cvtACrZITuTHcycAB6zHU7QxsivFH8JvuWxKx9Sba5WDmdxpKh3ZPLqy99DF4MpKZHL/sZWrvihLWNnfkiM37aCRgaOT3wClRzesrhFvcDMhAbYwMaUkZ75LcxCLZqlAT83BNH3pvm0= Received: from MW4PR10MB6608.namprd10.prod.outlook.com (2603:10b6:303:22e::8) by SA1PR10MB7791.namprd10.prod.outlook.com (2603:10b6:806:3a9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.31; Fri, 26 Apr 2024 20:20:37 +0000 Received: from MW4PR10MB6608.namprd10.prod.outlook.com ([fe80::67a4:9544:7249:7751]) by MW4PR10MB6608.namprd10.prod.outlook.com ([fe80::67a4:9544:7249:7751%7]) with mapi id 15.20.7472.044; Fri, 26 Apr 2024 20:20:37 +0000 From: Nick Alcock To: binutils@sourceware.org Subject: [PATCH 2/7] libctf: failure to open parent dicts that exist should be an error Date: Fri, 26 Apr 2024 21:20:18 +0100 Message-ID: <20240426202023.423064-3-nick.alcock@oracle.com> X-Mailer: git-send-email 2.44.0.273.ge0bd14271f In-Reply-To: <20240426202023.423064-1-nick.alcock@oracle.com> References: <20240426202023.423064-1-nick.alcock@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: LO4P123CA0634.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:294::9) To MW4PR10MB6608.namprd10.prod.outlook.com (2603:10b6:303:22e::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW4PR10MB6608:EE_|SA1PR10MB7791:EE_ X-MS-Office365-Filtering-Correlation-Id: 19b56d1e-39f0-4b09-6d73-08dc662e55b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|366007|376005|1800799015; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0bY5Gd4wFFlMp8fzpPRD67TrToSdsxreM5l2drBvYZ3ggVBLwONajJNU7brq?= =?us-ascii?Q?n34yQcjtHro2IyMM45uckdOlsbpw4u64d9uqmMuoXXE+/Ze4ZVbGQUpLXOLR?= =?us-ascii?Q?mQzOsTq1T440WwSnZru5zmruxtIPrVvgyZguWQ98DeYNcmTGyybi3Cp1ihVl?= =?us-ascii?Q?0HElcwBxCvGDsrpVl4qg8UQuayh1mQgp/y7loiHI6MxvaLWVEYiWxgQq3tKu?= =?us-ascii?Q?1tszLH+5fS3rEBcHG3Z+2ehk2RJr8e3wMN7Fp58zd7QMnx7gLzJK7xO9jATR?= =?us-ascii?Q?nEwGiA64/cc+0jQwl2OAVutDmiLDnuTk3IF6ZWZcAhWSuF33Sady/UMsMC15?= =?us-ascii?Q?fC9A15PYYA0dZ1UcV1sZlzj3q6FZFv4iBO1rlafRn3gpKwngE1dPImHcBVny?= =?us-ascii?Q?1NJZH7UMv7j5yFfwNYe5qeQriklZgroX52m/n9F85pr8z9AgqE2U0IJsnYWO?= =?us-ascii?Q?bH2vWb/bvrbHJ+USa4bfUAhrYkr5JsexhFDoaxb3xXIioU9mXSI1iZwPKE6y?= =?us-ascii?Q?flVwngjzay1f7SD+osHgbU40DEG5mC+9Hoffchl+YxAAFGn0576JRJxIZQeb?= =?us-ascii?Q?6nTf5sZfp4c1XJjWZE+cyjed+NMgisPk8ZRo1qiv0z7RwsqBSFeY6pyUHQUb?= =?us-ascii?Q?EPThzV/biT8vh7w/K4yuwgRixsOT7+jizbLWvdcVnr+rXNaUBRB8/csNFs63?= =?us-ascii?Q?Brv3K1R/2AwOnyfLPeGRS4J7gThIk7Q1MaTUD/roXGsCjsMETzkZm5J3FRna?= =?us-ascii?Q?VjqO1AnH7KTldbWiGIcxpwvi7EDjEA+AQQ4tWhnmqrAL2uiSnEm1jRPODSn1?= =?us-ascii?Q?PYeEotiUjijPPwqnuhZgD/ozO2ZCbevTh9dLy8IDaY7V2uBaGRuaOKIMkLVi?= =?us-ascii?Q?Uep0pYHmQ5F881DpwZdBtjohTjAWiVahGk5RUghwNtLqTJCQiO+/H/PKapo5?= =?us-ascii?Q?nnBREuhT3igY1hCx+q41CnwEWY3vPqrUFkaBwN70uNV1SljxbjskZeTJRYRD?= =?us-ascii?Q?jD/lI0BddXBJ9Z8xBITTheIgAUwhARtxW/lwfduOPXeRKFsqBOasX81lm2vm?= =?us-ascii?Q?Hk2ju49jvfLJQqGPfl6hZPF1P/BywxXyjEH7rkk2i1hmxVvqblluhkxGoytF?= =?us-ascii?Q?gqQz3hMVki2zqTQcG9JUfvw0g2FWgRTZgropjW3oRokbgKgfhKqYE8CN1883?= =?us-ascii?Q?7Z+ueCbLE5PjycbtK0MQdlmVNxEfmOwPnIX9IcIlgudFs+kwd9O0NHORrcWZ?= =?us-ascii?Q?+VbvkpGIU75C9eayeV9JP6pa/V18UABlEj4P8N+wLA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR10MB6608.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(376005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oy8zk/h3K+w56Ife8NI2BTIEQRsmmxQ7vBnwH/SG6JodtoymrKRK6JZZOOls?= =?us-ascii?Q?k0eU2SiEBoGSDEgoEH1H04H41c3vfQxB4aN7OMHxFXxqx6krOsNCYh3p4Wr/?= =?us-ascii?Q?R6M2DRYjQRlPgKNCt5sLU/gYsPhr7lqKll+0p4JrgiSvEhwnVz8O81O2RlAu?= =?us-ascii?Q?1Ty9hY3mncU6tvT4FGjqq4/TqinhCGY/PfYao40dUrpmG9AzLqabetKaTk5v?= =?us-ascii?Q?Z+DG/fmGj+YChujRfpm/8NJXUKevrkfMZvBLvjBSRgRRouCGCxeY/7/mNA8T?= =?us-ascii?Q?6ICPLczflVUd91BWAiRijZlsVBWj33GNntFfAT1NwEhLRjgJXfpQRksWNhL7?= =?us-ascii?Q?exXhg24CIwz/8n+tJmskcZQWO7rjCgGo/DOyoFZ97dV/Rvx3wJduwGSSzan6?= =?us-ascii?Q?BSJWYroEuJkF7gDCDUZ0OEivt/L3QT6NvIWxIdLI0IEdJDpOqkOzxNwpK2Rb?= =?us-ascii?Q?x73g3UYe12IwkoGmMMSGnFROz7/bOtNbHbHpovamtUJ5z7Lr4k44FwnVvjol?= =?us-ascii?Q?5jYQ/6v8HZTLP7e8+fOdN4gU7XjopvbzzqmmSZqassGf0KwwfKlXoFbvTRjv?= =?us-ascii?Q?Yofjb0DGjcuwwutn2paFenvBc0eUG34/xo1ETj0XW0sDKdZ9wYh7IokZiAgQ?= =?us-ascii?Q?7y4ihFDmuvMUiPIQa3ZPcXiDLHLY1J73ZUJgN6qKKHXRf/K+lmDNJaVr5fRT?= =?us-ascii?Q?AryBb2SbRHFwExsdGrZW7QAZQwrcq72rRAyP2RBlP481F21M7lGyHRfg5IYf?= =?us-ascii?Q?HktMeeRyRnodAMehl+FW7cy2JYPkqeJ4YDSakFNsdB45MNeHVf1R2TiJP+NO?= =?us-ascii?Q?kME2tFgbXfNowwt10XjGXfzrX4rSOs8PecGF80xSbg04F3nVrdwuHh4No4lu?= =?us-ascii?Q?RXJKVK/pWMZ2uqILNKSvacF/frBd+SthiiiS1tReVNhU1rKFEVDUmDgoZ93j?= =?us-ascii?Q?zfiOTwOqwS8Qr22rUHPUi6I6mvxK9DkBaEthaQj34IFY8Ic4qNS6pzE4IuUM?= =?us-ascii?Q?iZU8goyPut8IumSBkotu2mpfzGmH/7G/0/oiWK1ClReQ9/69fRL7EZA+uqGp?= =?us-ascii?Q?RFhlTI87ZR5aGOSErQawMGLgvmBAKXXRXqpziAYvpttKPk9jY4Jig/tOfDzE?= =?us-ascii?Q?3RtEj8RyNtE9yIkBylN4QQsL1cRm0AuwFLIjGOC3ymnWUK/Mre9clJ6WtwKf?= =?us-ascii?Q?+g4GrXmhJDWGPqCQgMXs1Y+2kt7r11PbIxiu7QoPdTR/Ub7LiE+tC9b03U0a?= =?us-ascii?Q?7GraNQvDlkAvUkYsUdhk5elQvYOyH2FTB1dDGF1IuYl35CHI1wQwGyvccMr2?= =?us-ascii?Q?VmIk6ypBooKXnJOrTsDtgA4LTrnHNswLg4kfd4mVMwI+QYi5F5dPMZgWZJ3/?= =?us-ascii?Q?6pB+rBzm4zn/mPT9sdpGur/It0/6HVaQZNDbWEl6yN58jUocfBxsHhhGTlK/?= =?us-ascii?Q?ojM2SZG5wIpcvA1DdEJRFp/mASBMPvYYlSB9RODUWpHy+d1RGHZ+Mvu9Lwze?= =?us-ascii?Q?FfnLOuUHoBDVy55qxrer1Ojmg7BoQoEE6hubmEgnyj39hp4O3hxXvdqppl2d?= =?us-ascii?Q?wLGCG/4IiycKsKQmbURV7NDIZYbBcKev8EHgTDLbzxQV9uWzfPnx4/MHe6pk?= =?us-ascii?Q?Eg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: masRZuUUQCpCYfmlbxIgJzfpmL0yGQhxKFyTQh9JEG4Ww8EOfYCm/qeoOLQX6NOw26+M56/DZ6foN8BPe2ZVvz5Zpe6zCzUX3uOyX42m5lkuMT1u5xyzaLkSlL7hweAtzm0D4s1Y6B3amyiu8Y271STXxQa7OlYA7FYofpsUbEb2df6juEMiC5jv44BGt6rh+IRaPOoWRVPP+q7yG4aPwcy3FkV//yARE5MXaGnVCOUVjEBmwu9Fy8l83z/LERcPIapnlelBE6vM96oAjO5MpvxTXHgFgsAbVYiXoxcEOJCp3DA4j4rgtzo6ki63CVjJHK4wxeIvp6CKzTU03m9u4rWfhjPqVIiYAFj2hedcFX1zzSRxaQiqNWPiUf/HvO5ao7Q6bisiv+A9MSw2hQYyoArjqCb4lRPRZnzRTSApA4xrqjVS4SWwVvdd6VxsZj0+G6hJdB3SI7fPj/gDou4mQvI8Pw9jRyfrsbZ5isiw0c12AeYABlv5Y245PS2c9GE5H3k0HCw7usn458mrqKy3KMaXY9fjUSd8tN3KFdlodcVB1Pr+KVyR+vaIc+v+VZaNzooI5ia7g5jnTDsodqZZTqSS4p7xQM1MuzKrhTBfO4Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19b56d1e-39f0-4b09-6d73-08dc662e55b0 X-MS-Exchange-CrossTenant-AuthSource: MW4PR10MB6608.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2024 20:20:37.4236 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: joVam1wM+z3RksGVF4pYcBcz2no8c13vh/280MSE9+mmRwn+g015qJq0VNMgZ+NDlrZa9G6Z+3CxBvakoSG4eA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-04-26_17,2024-04-26_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2404010000 definitions=main-2404260141 X-Proofpoint-ORIG-GUID: rq1SBbcrwHVku2ExffgJKTYbchI7GqRA X-Proofpoint-GUID: rq1SBbcrwHVku2ExffgJKTYbchI7GqRA X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,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 List-Id: CTF archive member opening (via ctf_arc_open_by_name, ctf_archive_iter, et al) attempts to be helpful and auto-open and import any needed parent dict in the same archive. But if this fails, the error is not reported but simply discarded, and you silently get back a dict with no parent, that *you* suddenly have to remember to import. This is not helpful behaviour: if the parent is corrupted or we run out of memory or something, the caller is going to want to know! Split it in two: if the dict cites a parent that doesn't exist at all (a lot of historic dicts name "PARENT" as their parent, even when they're not even children, or perhaps the parent dict is stored separately and you plan to manually associate it), we skip it as now, but if the import fails with an actual error other than ECTF_ARNNAME, return the error and fail the open. libctf/ * ctf-archive.c (ctf_arc_import_parent): Return failure if parent opening fails for reasons other thnn nonexistence. (ctf_dict_open_sections): Adjust. --- libctf/ctf-archive.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c index 3f12c0da85d..451d6c69735 100644 --- a/libctf/ctf-archive.c +++ b/libctf/ctf-archive.c @@ -44,7 +44,8 @@ static void *arc_mmap_file (int fd, size_t size); static int arc_mmap_writeout (int fd, void *header, size_t headersz, const char **errmsg); static int arc_mmap_unmap (void *header, size_t headersz, const char **errmsg); -static void ctf_arc_import_parent (const ctf_archive_t *arc, ctf_dict_t *fp); +static int ctf_arc_import_parent (const ctf_archive_t *arc, ctf_dict_t *fp, + int *errp); /* Flag to indicate "symbol not present" in ctf_archive_internal.ctfi_symdicts and ctfi_symnamedicts. Never initialized. */ @@ -602,7 +603,11 @@ ctf_dict_open_sections (const ctf_archive_t *arc, if (ret) { ret->ctf_archive = (ctf_archive_t *) arc; - ctf_arc_import_parent (arc, ret); + if (ctf_arc_import_parent (arc, ret, errp) < 0) + { + ctf_dict_close (ret); + return NULL; + } } return ret; } @@ -757,19 +762,26 @@ ctf_arc_open_by_name_sections (const ctf_archive_t *arc, already set, and a suitable archive member exists. No error is raised if this is not possible: this is just a best-effort helper operation to give people useful dicts to start with. */ -static void -ctf_arc_import_parent (const ctf_archive_t *arc, ctf_dict_t *fp) +static int +ctf_arc_import_parent (const ctf_archive_t *arc, ctf_dict_t *fp, int *errp) { if ((fp->ctf_flags & LCTF_CHILD) && fp->ctf_parname && !fp->ctf_parent) { + int err; ctf_dict_t *parent = ctf_dict_open_cached ((ctf_archive_t *) arc, - fp->ctf_parname, NULL); + fp->ctf_parname, &err); + if (errp) + *errp = err; + if (parent) { ctf_import (fp, parent); ctf_dict_close (parent); } + else if (err != ECTF_ARNNAME) + return -1; /* errno is set for us. */ } + return 0; } /* Return the number of members in an archive. */ -- 2.44.0.273.ge0bd14271f