Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Apr 2013 17:14:50 +0000 (UTC)
From:      Mikolaj Golub <trociny@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r249734 - stable/9/sys/kern
Message-ID:  <201304211714.r3LHEo0R075715@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304211714.r3LHEo0R075715>