From owner-cvs-src@FreeBSD.ORG Mon Dec 25 02:22:23 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6515916A492; Mon, 25 Dec 2006 02:22:23 +0000 (UTC) (envelope-from jkoshy@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 545FD13C46E; Mon, 25 Dec 2006 02:22:23 +0000 (UTC) (envelope-from jkoshy@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kBP2MNVJ050277; Mon, 25 Dec 2006 02:22:23 GMT (envelope-from jkoshy@repoman.freebsd.org) Received: (from jkoshy@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kBP2MNwE050275; Mon, 25 Dec 2006 02:22:23 GMT (envelope-from jkoshy) Message-Id: <200612250222.kBP2MNwE050275@repoman.freebsd.org> From: Joseph Koshy Date: Mon, 25 Dec 2006 02:22:23 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/libelf Makefile Version.map _libelf.h elf_getphnum.3 elf_phnum.c elf_scn.c elf_shnum.c elf_shstrndx.c elf_update.c libelf_checksum.c libelf_ehdr.c libelf_extended.c libelf_phdr.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Dec 2006 02:22:23 -0000 jkoshy 2006-12-25 02:22:23 UTC FreeBSD src repository Modified files: lib/libelf Makefile Version.map _libelf.h elf_scn.c elf_shnum.c elf_shstrndx.c elf_update.c libelf_checksum.c libelf_ehdr.c libelf_phdr.c Added files: lib/libelf elf_getphnum.3 elf_phnum.c libelf_extended.c Log: Keep shadow copies of the `e_shnum', `e_phnum' and `e_shstrndx' members of the ELF Executable Header inside the library-private `struct _Elf' descriptor and only update the underlying Elf{32,64}_Ehdr structure on an elf_update(3) call. These fields of the Ehdr structure are technically `out of bounds' for an application program per the ELF(3) API, but we've seen applications that initialize a new Ehdr structure using memcpy(), messing up the library's invariants. [1] Implement elf_getphnum() and handle ELF objects with more than 64K program header table entries. Reported by: jb [1] Revision Changes Path 1.5 +3 -0 src/lib/libelf/Makefile 1.2 +1 -0 src/lib/libelf/Version.map 1.2 +5 -3 src/lib/libelf/_libelf.h 1.1 +87 -0 src/lib/libelf/elf_getphnum.3 (new) 1.1 +53 -0 src/lib/libelf/elf_phnum.c (new) 1.2 +26 -42 src/lib/libelf/elf_scn.c 1.2 +7 -77 src/lib/libelf/elf_shnum.c 1.2 +7 -65 src/lib/libelf/elf_shstrndx.c 1.2 +11 -7 src/lib/libelf/elf_update.c 1.2 +1 -1 src/lib/libelf/libelf_checksum.c 1.2 +82 -3 src/lib/libelf/libelf_ehdr.c 1.1 +136 -0 src/lib/libelf/libelf_extended.c (new) 1.2 +13 -21 src/lib/libelf/libelf_phdr.c