Projects
openEuler:24.03:SP1:Everything
bash
_service:tar_scm:bash-4.2-coverity.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:bash-4.2-coverity.patch of Package bash
From 7930678ce9b0913ed355a6294f842d3e473f810d Mon Sep 17 00:00:00 2001 From: liujian <liujianliu.liu@huawei.com> Date: Mon, 31 May 2021 22:43:51 +0800 Subject: [PATCH] bash-4.2-coverity --- execute_cmd.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/execute_cmd.c b/execute_cmd.c index c78881e..d59a1fa 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -6045,7 +6045,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 @@ -6053,12 +6053,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) @@ -6100,11 +6100,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) @@ -6129,7 +6129,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 @@ -6137,11 +6137,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) @@ -6183,11 +6183,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) @@ -6209,8 +6209,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 @@ -6259,7 +6259,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; -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2