LibElf: Build the error management code in libelf.
authorGabe Black <gblack@eecs.umich.edu>
Mon, 13 Jun 2011 06:51:59 +0000 (23:51 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 13 Jun 2011 06:51:59 +0000 (23:51 -0700)
This change makes some minor changes to get the error management code in
libelf to build on Linux and to build it into the library.

ext/libelf/SConscript
ext/libelf/_libelf.h
ext/libelf/elf_errmsg.c

index 41627e90cb996d9ccf744e8bbe40d1ddc991b491..1e7fbb465d477966f629d39ab0540249aa4a047b 100644 (file)
@@ -40,6 +40,8 @@ ElfFile('elf_begin.c')
 ElfFile('elf_cntl.c')
 ElfFile('elf_data.c')
 ElfFile('elf_end.c')
+ElfFile('elf_errmsg.c')
+ElfFile('elf_errno.c')
 ElfFile('elf_fill.c')
 ElfFile('elf_flag.c')
 ElfFile('elf_getarhdr.c')
index a811abb1a01da513c2db7b2056e3ff45257b573f..f6cec6e329d9db50f155b79d2722681e07046644 100644 (file)
@@ -30,6 +30,7 @@
 #define        __LIBELF_H_
 
 #include "elf_queue.h"
+#include "libelf.h"
 
 #ifndef        NULL
 #define NULL   ((void *) 0)
index 88607ebf45e6934b954d8818d04bc89d40858548..5fafd5f5de5a916875322b86daed1129990ac6a9 100644 (file)
@@ -71,10 +71,10 @@ elf_errmsg(int error)
         if (error < 0 || error >= ELF_E_NUM)
                 return _libelf_errors[ELF_E_NUM];
         if (oserr) {
-                strlcpy(LIBELF_PRIVATE(msg), _libelf_errors[error],
+                strncpy(LIBELF_PRIVATE(msg), _libelf_errors[error],
                     sizeof(LIBELF_PRIVATE(msg)));
-                strlcat(LIBELF_PRIVATE(msg), ": ", sizeof(LIBELF_PRIVATE(msg)));
-                strlcat(LIBELF_PRIVATE(msg), strerror(oserr),
+                strncat(LIBELF_PRIVATE(msg), ": ", sizeof(LIBELF_PRIVATE(msg)));
+                strncat(LIBELF_PRIVATE(msg), strerror(oserr),
                     sizeof(LIBELF_PRIVATE(msg)));
                 return (const char *)&LIBELF_PRIVATE(msg);
         }