Author: trociny
Date: Sun Apr 21 17:14:50 2013
New Revision: 249734
URL: http://svnweb.freebsd.org/changeset/base/249734

Log:
  MFC r249238, r249239:
  
  r249238:
  
  Use 4-byte padding for core dump notes on both 32 and 64bit archs.
  
  Although native word padding (i.e. 8-byte on 64bit arch) looks to be
  in agreement with standards, other parts of our code and other OSes
  use 4-byte alignment.
  
  This is not expected to change alignment for currently generated core
  dump notes, as the notes look to consist of structures with sizes
  multiple of 8 on 64-bit archs. But there are plans to add additional
  notes, where 4-byte vs 8-byte alignment makes difference.
  
  Discussed with:       kib
  Reviewed by:  kib
  
  r249239:
  
  Fill p_flags and p_align fields of the core dump note segement.
  
  Reviewed by:  kib

Modified:
  stable/9/sys/kern/imgact_elf.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/kern/imgact_elf.c
==============================================================================
--- stable/9/sys/kern/imgact_elf.c      Sun Apr 21 17:13:58 2013        
(r249733)
+++ stable/9/sys/kern/imgact_elf.c      Sun Apr 21 17:14:50 2013        
(r249734)
@@ -1515,8 +1515,8 @@ __elfN(puthdr)(struct thread *td, void *
                phdr->p_paddr = 0;
                phdr->p_filesz = notesz;
                phdr->p_memsz = 0;
-               phdr->p_flags = 0;
-               phdr->p_align = 0;
+               phdr->p_flags = PF_R;
+               phdr->p_align = sizeof(Elf32_Size);
                phdr++;
 
                /* All the writable segments from the program. */
@@ -1540,10 +1540,10 @@ __elfN(putnote)(void *dst, size_t *off, 
        *off += sizeof note;
        if (dst != NULL)
                bcopy(name, (char *)dst + *off, note.n_namesz);
-       *off += roundup2(note.n_namesz, sizeof(Elf_Size));
+       *off += roundup2(note.n_namesz, sizeof(Elf32_Size));
        if (dst != NULL)
                bcopy(desc, (char *)dst + *off, note.n_descsz);
-       *off += roundup2(note.n_descsz, sizeof(Elf_Size));
+       *off += roundup2(note.n_descsz, sizeof(Elf32_Size));
 }
 
 static boolean_t
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to