123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c
- --- bash-4.2/execute_cmd.c.coverity 2011-02-24 13:04:35.000000000 +0100
- +++ bash-4.2/execute_cmd.c 2011-02-24 13:49:13.000000000 +0100
- @@ -5036,7 +5036,7 @@ shell_execve (command, args, env)
- Elf32_Ehdr ehdr;
- Elf32_Phdr *phdr;
- Elf32_Shdr *shdr;
- - int nphdr, nshdr;
- + Elf32_Half nphdr, nshdr;
-
- /* We have to copy the data since the sample buffer
- might not be aligned correctly to be accessed as
- @@ -5044,12 +5044,12 @@ shell_execve (command, args, env)
- memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
-
- nshdr = ehdr.e_shnum;
- - shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize);
- + shdr = (Elf32_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize);
-
- if (shdr != NULL)
- {
- #ifdef HAVE_PREAD
- - sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
- + sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize,
- ehdr.e_shoff);
- #else
- if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
- @@ -5091,11 +5091,11 @@ shell_execve (command, args, env)
- }
-
- nphdr = ehdr.e_phnum;
- - phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
- + phdr = (Elf32_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize);
- if (phdr != NULL)
- {
- #ifdef HAVE_PREAD
- - sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
- + sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize,
- ehdr.e_phoff);
- #else
- if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
- @@ -5120,7 +5120,7 @@ shell_execve (command, args, env)
- Elf64_Ehdr ehdr;
- Elf64_Phdr *phdr;
- Elf64_Shdr *shdr;
- - int nphdr, nshdr;
- + Elf32_Half nphdr, nshdr;
-
- /* We have to copy the data since the sample buffer
- might not be aligned correctly to be accessed as
- @@ -5128,11 +5128,11 @@ shell_execve (command, args, env)
- memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
-
- nshdr = ehdr.e_shnum;
- - shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize);
- + shdr = (Elf64_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize);
- if (shdr != NULL)
- {
- #ifdef HAVE_PREAD
- - sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
- + sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize,
- ehdr.e_shoff);
- #else
- if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
- @@ -5174,11 +5174,11 @@ shell_execve (command, args, env)
- }
-
- nphdr = ehdr.e_phnum;
- - phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
- + phdr = (Elf64_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize);
- if (phdr != NULL)
- {
- #ifdef HAVE_PREAD
- - sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
- + sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize,
- ehdr.e_phoff);
- #else
- if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
- @@ -5200,8 +5200,8 @@ shell_execve (command, args, env)
-
- if (offset != -1)
- {
- - size_t maxlen = 0;
- - size_t actlen = 0;
- + ssize_t maxlen = 0;
- + ssize_t actlen = 0;
- char *interp = NULL;
-
- do
- @@ -5250,7 +5250,8 @@ shell_execve (command, args, env)
- }
- #endif
- #if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
- - close (fd);
- + if (fd >= 0)
- + close (fd);
- #endif
- errno = i;
- file_error (command);
|