From e148b73013109517c4d179aa9ae5a50b6d1dd5b5 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Thu, 4 Jun 2020 18:07:38 +0100 Subject: [PATCH] libctf: drop error-prone ctf_strerror This utility function is almost useless (all it does is casts the result of a strerror) but has a seriously confusing name. Over and over again I have accidentally called it instead of ctf_errmsg, and hidden a time-bomb for myself in a hard-to-test error-handling path: since ctf_strerror is just a strerror wrapper, it cannot handle CTF errnos, unlike ctf_errmsg. It's astonishingly lucky that none of these errors have crept into any commits to date. Fuse it into ctf_errmsg and drop it. libctf/ * ctf-impl.h (ctf_strerror): Delete. * ctf-subr.c (ctf_strerror): Likewise. * ctf-error.c (ctf_errmsg): Stop using ctf_strerror: just use strerror directly. --- libctf/ChangeLog | 7 +++++++ libctf/ctf-error.c | 3 ++- libctf/ctf-impl.h | 1 - libctf/ctf-subr.c | 6 ------ 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/libctf/ChangeLog b/libctf/ChangeLog index 4830284b14..d54af359ec 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,3 +1,10 @@ +2020-07-22 Nick Alcock + + * ctf-impl.h (ctf_strerror): Delete. + * ctf-subr.c (ctf_strerror): Likewise. + * ctf-error.c (ctf_errmsg): Stop using ctf_strerror: just use + strerror directly. + 2020-07-22 Nick Alcock * ctf-impl.c (ctf_file_t) : New. diff --git a/libctf/ctf-error.c b/libctf/ctf-error.c index 84d14d5932..20971f4275 100644 --- a/libctf/ctf-error.c +++ b/libctf/ctf-error.c @@ -19,6 +19,7 @@ #include #include +#include /* This construct is due to Bruno Haible: much thanks. */ @@ -67,7 +68,7 @@ ctf_errmsg (int error) if (error >= ECTF_BASE && (error - ECTF_BASE) < ECTF_NERR) str = _ctf_errlist.str + _ctf_erridx[error - ECTF_BASE]; else - str = ctf_strerror (error); + str = (const char *) strerror (error); return (str ? str : "Unknown error"); } diff --git a/libctf/ctf-impl.h b/libctf/ctf-impl.h index 4c8a37c4c2..71b732a277 100644 --- a/libctf/ctf-impl.h +++ b/libctf/ctf-impl.h @@ -548,7 +548,6 @@ extern ssize_t ctf_pread (int fd, void *buf, ssize_t count, off_t offset); extern void *ctf_realloc (ctf_file_t *, void *, size_t); extern char *ctf_str_append (char *, const char *); extern char *ctf_str_append_noerr (char *, const char *); -extern const char *ctf_strerror (int); extern ctf_id_t ctf_type_resolve_unsliced (ctf_file_t *, ctf_id_t); extern int ctf_type_kind_unsliced (ctf_file_t *, ctf_id_t); diff --git a/libctf/ctf-subr.c b/libctf/ctf-subr.c index 0b49ae9fca..455f18dcff 100644 --- a/libctf/ctf-subr.c +++ b/libctf/ctf-subr.c @@ -122,12 +122,6 @@ ctf_pread (int fd, void *buf, ssize_t count, off_t offset) return acc; } -const char * -ctf_strerror (int err) -{ - return (const char *) (strerror (err)); -} - /* Set the CTF library client version to the specified version. If version is zero, we just return the default library version number. */ int -- 2.34.1