qemu-devel
[Top][All Lists]
Advanced

[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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]