From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (wildebeest.demon.nl [212.238.236.112]) by sourceware.org (Postfix) with ESMTPS id 18CD6383D834 for ; Thu, 1 Jul 2021 15:18:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 18CD6383D834 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from reform (deer0x00.wildebeest.org [172.31.17.130]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 0E2073000346; Thu, 1 Jul 2021 17:18:17 +0200 (CEST) Received: by reform (Postfix, from userid 1000) id 37EB12E80F3B; Thu, 1 Jul 2021 17:18:07 +0200 (CEST) From: Mark Wielaard To: debugedit@sourceware.org Cc: Mark Wielaard Subject: [PATCH] debugedit: check write to list_file succeeds Date: Thu, 1 Jul 2021 17:17:59 +0200 Message-Id: <20210701151759.329591-1-mark@klomp.org> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, 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: debugedit@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: debugedit development mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2021 15:18:21 -0000 We didn't check, or ignored, errors writing to the list_file. Always produce an error if we cannot write to the list_file. * debugedit.c (read_dwarf4_line): Produce error if write fails. (read_dwarf5_line_entries): Likewise. (edit_attributes): Likewise. Signed-off-by: Mark Wielaard --- tools/debugedit.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/debugedit.c b/tools/debugedit.c index 80b99fe..f07b6e1 100644 --- a/tools/debugedit.c +++ b/tools/debugedit.c @@ -1785,7 +1785,7 @@ read_dwarf4_line (DSO *dso, unsigned char *ptr, char *comp_dir, { ssize_t ret = write (list_file_fd, p, size); if (ret == -1) - break; + error (1, errno, "Could not write to '%s'", list_file); size -= ret; p += ret; } @@ -2005,7 +2005,7 @@ read_dwarf5_line_entries (DSO *dso, unsigned char **ptrp, { ssize_t ret = write (list_file_fd, p, size); if (ret == -1) - break; + error (1, errno, "Could not write to '%s'", list_file); size -= ret; p += ret; } @@ -2348,7 +2348,7 @@ edit_attributes (DSO *dso, unsigned char *ptr, struct abbrev_tag *t, int phase) { ssize_t ret = write (list_file_fd, p, size); if (ret == -1) - break; + error (1, errno, "Could not write to '%s'", list_file); size -= ret; p += ret; } @@ -2356,10 +2356,13 @@ edit_attributes (DSO *dso, unsigned char *ptr, struct abbrev_tag *t, int phase) regular files. */ if (size == 0) { + ssize_t ret; if (*(p - 1) != '/') - write (list_file_fd, "/", 2); + ret = write (list_file_fd, "/", 2); else - write (list_file_fd, "", 1); + ret = write (list_file_fd, "", 1); + if (ret == -1) + error (1, errno, "Could not write to '%s'", list_file); } } } -- 2.32.0