public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 2/3] libctf: explicitly cast more size_t types used in printf()s
  2019-06-06 20:23 [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Nick Alcock
  2019-06-06 20:23 ` [PATCH 3/3] libctf: avoid strndup Nick Alcock
@ 2019-06-06 20:23 ` Nick Alcock
  2019-06-07 13:12 ` [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Jose E. Marchesi
  2 siblings, 0 replies; 4+ messages in thread
From: Nick Alcock @ 2019-06-06 20:23 UTC (permalink / raw)
  To: binutils; +Cc: jose.marchesi, tom.tromey

Unsigned long will always be adequate (the only cases involving an
ssize_t are cases in which no error can be generated, or in which
negative output would require a seriously corrupted file: the latter has
been rewritten on a branch in any case).

Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.

libctf/
	* ctf-dump.c (ctf_dump_format_type): Cast size_t's used in printf()s.
	(ctf_dump_objts): Likewise.
	(ctf_dump_funcs): Likewise.
	(ctf_dump_member): Likewise.
	(ctf_dump_str): Likewise.
---
 libctf/ctf-dump.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
index 82f63c29d0..3dac435eba 100644
--- a/libctf/ctf-dump.c
+++ b/libctf/ctf-dump.c
@@ -122,7 +122,8 @@ ctf_dump_format_type (ctf_file_t *fp, ctf_id_t id)
       else
 	{
 	  if (asprintf (&bit, " %lx: %s (size %lx)", id, buf[0] == '\0' ?
-			"(nameless)" : buf, ctf_type_size (fp, id)) < 0)
+			"(nameless)" : buf,
+			(unsigned long) ctf_type_size (fp, id)) < 0)
 	    goto oom;
 	}
       free (buf);
@@ -211,12 +212,12 @@ ctf_dump_objts (ctf_file_t *fp, ctf_dump_state_t *state)
       sym_name = ctf_lookup_symbol_name (fp, i);
       if (sym_name[0] == '\0')
 	{
-	  if (asprintf (&str, "%lx -> ", i) < 0)
+	  if (asprintf (&str, "%lx -> ", (unsigned long) i) < 0)
 	    return (ctf_set_errno (fp, ENOMEM));
 	}
       else
 	{
-	  if (asprintf (&str, "%s (%lx) -> ", sym_name, i) < 0)
+	  if (asprintf (&str, "%s (%lx) -> ", sym_name, (unsigned long) i) < 0)
 	    return (ctf_set_errno (fp, ENOMEM));
 	}
 
@@ -279,12 +280,12 @@ ctf_dump_funcs (ctf_file_t *fp, ctf_dump_state_t *state)
       sym_name = ctf_lookup_symbol_name (fp, i);
       if (sym_name[0] == '\0')
 	{
-	  if (asprintf (&bit, "%lx ", i) < 0)
+	  if (asprintf (&bit, "%lx ", (unsigned long) i) < 0)
 	    goto oom;
 	}
       else
 	{
-	  if (asprintf (&bit, "%s (%lx) ", sym_name, i) < 0)
+	  if (asprintf (&bit, "%s (%lx) ", sym_name, (unsigned long) i) < 0)
 	    goto oom;
 	}
       str = ctf_str_append (str, bit);
@@ -369,7 +370,7 @@ ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
 
   if (asprintf (&bit, "    [0x%lx] (ID 0x%lx) (kind %i) %s %s (aligned at 0x%lx",
 		offset, id, ctf_type_kind (state->cdm_fp, id), typestr, name,
-		ctf_type_align (state->cdm_fp, id)) < 0)
+		(unsigned long) ctf_type_align (state->cdm_fp, id)) < 0)
     goto oom;
   *state->cdm_str = ctf_str_append (*state->cdm_str, bit);
   free (typestr);
@@ -440,7 +441,8 @@ ctf_dump_str (ctf_file_t *fp, ctf_dump_state_t *state)
 	 fp->ctf_str[CTF_STRTAB_0].cts_len;)
     {
       char *str;
-      if (asprintf (&str, "%lx: %s", s - fp->ctf_str[CTF_STRTAB_0].cts_strs,
+      if (asprintf (&str, "%lx: %s",
+		    (unsigned long) (s - fp->ctf_str[CTF_STRTAB_0].cts_strs),
 		    s) < 0)
 	return (ctf_set_errno (fp, ENOMEM));
       ctf_dump_append (state, str);
-- 
2.21.0.237.gd0cfaa883d

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3/3] libctf: avoid strndup
  2019-06-06 20:23 [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Nick Alcock
@ 2019-06-06 20:23 ` Nick Alcock
  2019-06-06 20:23 ` [PATCH 2/3] libctf: explicitly cast more size_t types used in printf()s Nick Alcock
  2019-06-07 13:12 ` [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Jose E. Marchesi
  2 siblings, 0 replies; 4+ messages in thread
From: Nick Alcock @ 2019-06-06 20:23 UTC (permalink / raw)
  To: binutils; +Cc: jose.marchesi, tom.tromey

Not all platforms have it.  Use libiberty xstrndup() instead.

(The include of libiberty.h happens in an unusual place due to the
requirements of synchronization of most source files between this
project and another that does not use libiberty.  It serves to pull
libiberty.h in for all source files in libctf/, which does the trick.)

Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.

libctf/
	* ctf-decls.h: Include <libiberty.h>.
	* ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().
---
 libctf/ctf-decls.h  | 1 +
 libctf/ctf-lookup.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/libctf/ctf-decls.h b/libctf/ctf-decls.h
index c840b793c9..b60a48f987 100644
--- a/libctf/ctf-decls.h
+++ b/libctf/ctf-decls.h
@@ -24,6 +24,7 @@
 
 #include <stddef.h>
 #include <stdlib.h>
+#include "libiberty.h"
 
 #if HAVE_QSORT_R_ARG_LAST
 static inline void
diff --git a/libctf/ctf-lookup.c b/libctf/ctf-lookup.c
index ab12715f4b..4089ad9ffa 100644
--- a/libctf/ctf-lookup.c
+++ b/libctf/ctf-lookup.c
@@ -153,7 +153,7 @@ ctf_lookup_by_name (ctf_file_t *fp, const char *name)
 	      else
 		{
 		  free (fp->ctf_tmp_typeslice);
-		  fp->ctf_tmp_typeslice = strndup (p, (size_t) (q - p));
+		  fp->ctf_tmp_typeslice = xstrndup (p, (size_t) (q - p));
 		  if (fp->ctf_tmp_typeslice == NULL)
 		    {
 		      (void) ctf_set_errno (fp, ENOMEM);
-- 
2.21.0.237.gd0cfaa883d

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case
@ 2019-06-06 20:23 Nick Alcock
  2019-06-06 20:23 ` [PATCH 3/3] libctf: avoid strndup Nick Alcock
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Nick Alcock @ 2019-06-06 20:23 UTC (permalink / raw)
  To: binutils; +Cc: jose.marchesi, tom.tromey

Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.

libctf/
	* ctf-archive.c (arc_mmap_header): Mark fd as potentially unused.
	* ctf-subr.c (ctf_data_protect): Mark both args as potentially unused.
---
 libctf/ctf-archive.c | 2 +-
 libctf/ctf-subr.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c
index 24144937a7..5c1692219e 100644
--- a/libctf/ctf-archive.c
+++ b/libctf/ctf-archive.c
@@ -681,7 +681,7 @@ static int arc_mmap_unmap (void *header, size_t headersz, const char **errmsg)
 }
 #else
 /* Map the header in.  Only used on new, empty files.  */
-static void *arc_mmap_header (int fd, size_t headersz)
+static void *arc_mmap_header (int fd _libctf_unused_, size_t headersz)
 {
   void *hdr;
   if ((hdr = malloc (headersz)) == NULL)
diff --git a/libctf/ctf-subr.c b/libctf/ctf-subr.c
index 09ec2951e5..b897351b82 100644
--- a/libctf/ctf-subr.c
+++ b/libctf/ctf-subr.c
@@ -106,7 +106,7 @@ ctf_munmap (void *buf, size_t length _libctf_unused_)
 }
 
 void
-ctf_data_protect (void *buf, size_t size)
+ctf_data_protect (void *buf _libctf_unused_, size_t size _libctf_unused_)
 {
 #ifdef HAVE_MMAP
   /* Must be the same as the check in ctf_data_alloc().  */
-- 
2.21.0.237.gd0cfaa883d

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case
  2019-06-06 20:23 [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Nick Alcock
  2019-06-06 20:23 ` [PATCH 3/3] libctf: avoid strndup Nick Alcock
  2019-06-06 20:23 ` [PATCH 2/3] libctf: explicitly cast more size_t types used in printf()s Nick Alcock
@ 2019-06-07 13:12 ` Jose E. Marchesi
  2 siblings, 0 replies; 4+ messages in thread
From: Jose E. Marchesi @ 2019-06-07 13:12 UTC (permalink / raw)
  To: Nick Alcock; +Cc: binutils, tom.tromey


    Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
    sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.
    
    libctf/
    	* ctf-archive.c (arc_mmap_header): Mark fd as potentially unused.
    	* ctf-subr.c (ctf_data_protect): Mark both args as potentially unused.

Pushed on your behalf.
Salud!

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-06-07 13:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-06 20:23 [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Nick Alcock
2019-06-06 20:23 ` [PATCH 3/3] libctf: avoid strndup Nick Alcock
2019-06-06 20:23 ` [PATCH 2/3] libctf: explicitly cast more size_t types used in printf()s Nick Alcock
2019-06-07 13:12 ` [PATCH 1/3] libctf: mark various args as unused in the !HAVE_MMAP case Jose E. Marchesi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).