libctf: drop error-prone ctf_strerror
authorNick Alcock <nick.alcock@oracle.com>
Thu, 4 Jun 2020 17:07:38 +0000 (18:07 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Wed, 22 Jul 2020 17:02:18 +0000 (18:02 +0100)
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
libctf/ctf-error.c
libctf/ctf-impl.h
libctf/ctf-subr.c

index 4830284b14a1477a52dfbcf351873615631f8f6f..d54af359ec5dd2cbd64570a7f6cfb1213a46cd30 100644 (file)
@@ -1,3 +1,10 @@
+2020-07-22  Nick Alcock  <nick.alcock@oracle.com>
+
+       * 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  <nick.alcock@oracle.com>
 
        * ctf-impl.c (ctf_file_t) <ctf_parent_unreffed>: New.
index 84d14d59323e287a2de2c19682f80426602d6cc2..20971f4275b2fdf76f228229c59ba5c7006bc0a6 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <ctf-impl.h>
 #include <stddef.h>
+#include <string.h>
 
 /* 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");
 }
index 4c8a37c4c268e20741e70e8963d54fcada904b3d..71b732a2775866466e44cbc982e57e6d055b169a 100644 (file)
@@ -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);
index 0b49ae9fca8c067b897a0286a025dddbf73b4897..455f18dcffbbd20e9f1b8f1da89177494997b40b 100644 (file)
@@ -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