[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 12/14] linux-user: Re-use load_elf_image for the
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 12/14] linux-user: Re-use load_elf_image for the main binary. |
Date: |
Mon, 05 Apr 2010 11:38:07 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Thunderbird/3.0.4 |
On 04/05/2010 11:14 AM, malc wrote:
>> + }
>> + interp_name = malloc(eppnt->p_filesz);
>
> malloc can fail
>
>> +
>> + if (eppnt->p_offset + eppnt->p_filesz <= BPRM_BUF_SIZE) {
>> + memcpy(interp_name, bprm_buf + eppnt->p_offset,
>> + eppnt->p_filesz);
>> + } else {
>> + retval = pread(image_fd, interp_name, eppnt->p_filesz,
>
> Indentation seems off.
Huh. I suspect that the whitespace fixup patch should have also
eliminated tabs. I don't know how else that could have crept in
there, since I have tab-expansion enabled in emacs.
I'll incorporate the following into the next version.
r~
---
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 7b854e2..e8eca86 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -1327,12 +1327,15 @@ static void load_elf_image(const char *image_name, int
image_fd,
goto exit_errmsg;
}
interp_name = malloc(eppnt->p_filesz);
+ if (!interp_name) {
+ goto exit_perror;
+ }
if (eppnt->p_offset + eppnt->p_filesz <= BPRM_BUF_SIZE) {
memcpy(interp_name, bprm_buf + eppnt->p_offset,
eppnt->p_filesz);
} else {
- retval = pread(image_fd, interp_name, eppnt->p_filesz,
+ retval = pread(image_fd, interp_name, eppnt->p_filesz,
eppnt->p_offset);
if (retval != eppnt->p_filesz) {
goto exit_perror;
- [Qemu-devel] [PATCH 06/14] linux-user: Clean up byte-swapping in elfload.c., (continued)
- [Qemu-devel] [PATCH 06/14] linux-user: Clean up byte-swapping in elfload.c., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 05/14] linux-user: Fix ELF_DATA for Alpha., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 10/14] linux-user: Remove partial support for a.out interpreters., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 13/14] linux-user: Build vdso for x64., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 04/14] linux-user: Reduce lseek+reads while loading elf files., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 11/14] linux-user: Extract load_elf_image from load_elf_interp., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 09/14] linux-user: Put the stack guard page at the top., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 07/14] linux-user: Load symbols from the interpreter., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 12/14] linux-user: Re-use load_elf_image for the main binary., Richard Henderson, 2010/04/05
- [Qemu-devel] [PATCH 00/14] Implement VDSO for x86-64-linux-user, v2, Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 04/14] linux-user: Reduce lseek+reads while loading elf files., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 01/14] linux-user: Handle filesz < memsz for any PT_LOAD segment., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 02/14] Add more DT_* and AT_* constants to qemu's copy of elf.h., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 09/14] linux-user: Put the stack guard page at the top., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 05/14] linux-user: Fix ELF_DATA for Alpha., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 06/14] linux-user: Clean up byte-swapping in elfload.c., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 10/14] linux-user: Remove partial support for a.out interpreters., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 08/14] linux-user: Improve consistency checking in elf headers., Richard Henderson, 2010/04/28
- [Qemu-devel] [PATCH 11/14] linux-user: Extract load_elf_image from load_elf_interp., Richard Henderson, 2010/04/28