Make sure that if we have really many labels the tempsym doesn't get
truncated because it is too small to hold the whole name.

This doesn't enable -Wformat-truncation=2 or fix other "issues" pointed
out by enabling this warning because there are currently some issues
with it. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79448

Signed-off-by: Mark Wielaard <m...@klomp.org>
---
 libasm/ChangeLog    | 6 +++++-
 libasm/asm_newsym.c | 6 ++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index fe06007..3f842f0 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,4 +1,8 @@
-2015-10-11  Akihiko Odaki  <akihiko.odaki...@stu.hosei.ac.jp>
+2017-02-12  Mark Wielaard  <m...@redhat.com>
+
+       * asm_newsym.c (asm_newsym): Increase TEMPSYMLEN to 13.
+
+2016-10-11  Akihiko Odaki  <akihiko.odaki...@stu.hosei.ac.jp>
 
        * asm_align.c: Remove sys/param.h include.
 
diff --git a/libasm/asm_newsym.c b/libasm/asm_newsym.c
index 332432a..5389166 100644
--- a/libasm/asm_newsym.c
+++ b/libasm/asm_newsym.c
@@ -1,5 +1,5 @@
 /* Define new symbol for current position in given section.
-   Copyright (C) 2002, 2005, 2016 Red Hat, Inc.
+   Copyright (C) 2002, 2005, 2016, 2017 Red Hat, Inc.
    This file is part of elfutils.
    Written by Ulrich Drepper <drep...@redhat.com>, 2002.
 
@@ -44,7 +44,9 @@ AsmSym_t *
 asm_newsym (AsmScn_t *asmscn, const char *name, GElf_Xword size,
            int type, int binding)
 {
-#define TEMPSYMLEN 10
+/* We don't really expect labels with many digits, but in theory it could
+   be 10 digits (plus ".L" and a zero terminator).  */
+#define TEMPSYMLEN 13
   char tempsym[TEMPSYMLEN];
   AsmSym_t *result;
 
-- 
1.8.3.1

Reply via email to