svn commit: r277557 - stable/10/usr.sbin/crunch/crunchide
Ed Maste
emaste at FreeBSD.org
Fri Jan 23 02:39:01 UTC 2015
Author: emaste
Date: Fri Jan 23 02:39:00 2015
New Revision: 277557
URL: https://svnweb.freebsd.org/changeset/base/277557
Log:
crunchide: Correct 64-bit section header offset
For 64-bit binaries the Elf_Ehdr e_shoff is at offset 40, not 44.
Instead of using an incorrect hardcoded offset, let the compiler
figure it out for us with offsetof().
MFC of r277259
Modified:
stable/10/usr.sbin/crunch/crunchide/exec_elf32.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/usr.sbin/crunch/crunchide/exec_elf32.c
==============================================================================
--- stable/10/usr.sbin/crunch/crunchide/exec_elf32.c Fri Jan 23 01:39:04 2015 (r277556)
+++ stable/10/usr.sbin/crunch/crunchide/exec_elf32.c Fri Jan 23 02:39:00 2015 (r277557)
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <errno.h>
#include <limits.h>
+#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -464,7 +465,7 @@ ELFNAMEEND(hide)(int fd, const char *fn)
if (layoutp[i].shdr == &shdrshdr &&
ehdr.e_shoff != shdrshdr.sh_offset) {
ehdr.e_shoff = shdrshdr.sh_offset;
- off = (ELFSIZE == 32) ? 32 : 44;
+ off = offsetof(Elf_Ehdr, e_shoff);
size = sizeof(Elf_Off);
if ((size_t)xwriteatoff(fd, &ehdr.e_shoff, off, size,
fn) != size)
More information about the svn-src-stable
mailing list