2014-03-28 Richard Biener <rguenther@suse.de>
[deliverable/binutils-gdb.git] / libiberty / simple-object-mach-o.c
index af5e4f9ca8841d825b56d6bc044d268f30ab9cfd..d1b676d777c1604bbfef86d84a3ec6c51d4d907a 100644 (file)
@@ -1,5 +1,5 @@
 /* simple-object-mach-o.c -- routines to manipulate Mach-O object files.
-   Copyright 2010, 2011 Free Software Foundation, Inc.
+   Copyright 2010, 2011, 2013 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Google.
 
 This program is free software; you can redistribute it and/or modify it
@@ -432,7 +432,7 @@ simple_object_mach_o_segment (simple_object_read *sobj, off_t offset,
   size_t index_size;
   unsigned int n_wrapped_sects;
   size_t wrapper_sect_size;
-  off_t wrapper_sect_offset;
+  off_t wrapper_sect_offset = 0;
 
   fetch_32 = (omr->is_big_endian
              ? simple_object_fetch_big_32
@@ -701,12 +701,13 @@ simple_object_mach_o_segment (simple_object_read *sobj, off_t offset,
           /* Otherwise, make a name like __segment,__section as per the
              convention in mach-o asm.  */
          name = &namebuf[0];
-         memset (namebuf, 0, MACH_O_NAME_LEN * 2 + 2);
          memcpy (namebuf, (char *) sechdr + segname_offset, MACH_O_NAME_LEN);
+         namebuf[MACH_O_NAME_LEN] = '\0';
          l = strlen (namebuf);
          namebuf[l] = ',';
          memcpy (namebuf + l + 1, (char *) sechdr + sectname_offset,
                  MACH_O_NAME_LEN);
+         namebuf[l + 1 + MACH_O_NAME_LEN] = '\0';
        }
 
       simple_object_mach_o_section_info (omr->is_big_endian, is_32, sechdr,
This page took 0.02485 seconds and 4 git commands to generate.