Message ID | 20210910170656.366592-3-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] elf2dmp: Check curl_easy_setopt() return value | expand |
Hi, On Fri, 10 Sep 2021 19:06:56 +0200 Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > From: Peter Maydell <peter.maydell@linaro.org> > > Coverity points out that if the PDB file we're trying to read > has a header specifying a block_size of zero then we will > end up trying to divide by zero in pdb_ds_read_file(). > Check for this and fail cleanly instead. > > Fixes: Coverity CID 1458869 > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > Reviewed-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu> > Message-Id: <20210901143910.17112-3-peter.maydell@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > Informal T-b tag on > https://lore.kernel.org/qemu-devel/20210909004313.1dadb24e@192.168.1.7/ > Tested-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu> > --- > contrib/elf2dmp/pdb.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/contrib/elf2dmp/pdb.c b/contrib/elf2dmp/pdb.c > index b3a65470680..adcfa7e154c 100644 > --- a/contrib/elf2dmp/pdb.c > +++ b/contrib/elf2dmp/pdb.c > @@ -215,6 +215,10 @@ out_symbols: > > static int pdb_reader_ds_init(struct pdb_reader *r, PDB_DS_HEADER > *hdr) { > + if (hdr->block_size == 0) { > + return 1; > + } > + > memset(r->file_used, 0, sizeof(r->file_used)); > r->ds.header = hdr; > r->ds.toc = pdb_ds_read(hdr, (uint32_t *)((uint8_t *)hdr + Tested-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu> -- Viktor Prutyanov
diff --git a/contrib/elf2dmp/pdb.c b/contrib/elf2dmp/pdb.c index b3a65470680..adcfa7e154c 100644 --- a/contrib/elf2dmp/pdb.c +++ b/contrib/elf2dmp/pdb.c @@ -215,6 +215,10 @@ out_symbols: static int pdb_reader_ds_init(struct pdb_reader *r, PDB_DS_HEADER *hdr) { + if (hdr->block_size == 0) { + return 1; + } + memset(r->file_used, 0, sizeof(r->file_used)); r->ds.header = hdr; r->ds.toc = pdb_ds_read(hdr, (uint32_t *)((uint8_t *)hdr +