From: P J P <ppandit@redhat.com> To: Paolo Bonzini <pbonzini@redhat.com> Cc: "Fam Zheng" <fam@euphon.net>, "QEMU Developers" <qemu-devel@nongnu.org>, "Alexander Bulekov" <alxndr@bu.edu>, "Ding Ren" <rding@gatech.edu>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com> Subject: Re: [PATCH v2 2/3] megasas: avoid NULL pointer dereference Date: Tue, 26 May 2020 12:48:25 +0530 (IST) [thread overview] Message-ID: <nycvar.YSQ.7.77.849.2005261138520.62159@xnncv> (raw) In-Reply-To: <defefce8-72f2-65c2-04cf-918f3697532a@redhat.com> Hello, +-- On Thu, 21 May 2020, Paolo Bonzini wrote --+ | I think the code here was expecting frame_size_p to be 0 if cmd->frame is | NULL. Can you check why this is not the case, or whether it ever was the | case? static MegasasCmd *megasas_enqueue_frame(MegasasState *s, hwaddr frame, ... int frame_size = MEGASAS_MAX_SGE * sizeof(union mfi_sgl); hwaddr frame_size_p = frame_size; <== = 128 * 16 = 2048 so 'frame_size_p' always starts with value '2048' ... cmd->frame = pci_dma_map(pcid, frame, &frame_size_p, 0); -> pci_dma_map -> dma_memory_map -> address_space_map mr = flatview_translate(fv, addr, &xlat, &l, is_write, attrs); ... if (atomic_xchg(&bounce.in_use, true)) { return NULL; <== NULL is returned from here } Later when address_space_map() returns 'NULL' above, '*plen' is not set to zero. diff --git a/exec.c b/exec.c index 5162f0d12f..4eea84bf66 100644 --- a/exec.c +++ b/exec.c @@ -3538,6 +3538,7 @@ void *address_space_map(AddressSpace *as, if (!memory_access_is_direct(mr, is_write)) { if (atomic_xchg(&bounce.in_use, true)) { + *plen = 0; return NULL; } I'll send a revised patch above. Thank you. -- Prasad J Pandit / Red Hat Product Security Team 8685 545E B54C 486B C6EB 271E E285 8B5A F050 DE8D
next prev parent reply other threads:[~2020-05-26 7:19 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-13 19:25 [PATCH v2 0/3] Megasas: fix OOB access and NULL dereference issues P J P 2020-05-13 19:25 ` [PATCH v2 1/3] megasas: use unsigned type for reply_queue_head and check index P J P 2020-05-13 20:31 ` Alexander Bulekov 2020-05-14 13:19 ` Darren Kenny 2020-05-14 16:10 ` P J P 2020-05-13 19:25 ` [PATCH v2 2/3] megasas: avoid NULL pointer dereference P J P 2020-05-13 20:20 ` Alexander Bulekov 2020-05-14 13:19 ` Darren Kenny 2020-05-21 15:34 ` Paolo Bonzini 2020-05-26 7:18 ` P J P [this message] 2020-05-26 7:49 ` Paolo Bonzini 2020-05-13 19:25 ` [PATCH v2 3/3] megasas: use unsigned type for positive numeric fields P J P 2020-05-14 13:28 ` Darren Kenny 2020-05-21 15:35 ` [PATCH v2 0/3] Megasas: fix OOB access and NULL dereference issues Paolo Bonzini
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=nycvar.YSQ.7.77.849.2005261138520.62159@xnncv \ --to=ppandit@redhat.com \ --cc=alxndr@bu.edu \ --cc=fam@euphon.net \ --cc=marcandre.lureau@redhat.com \ --cc=pbonzini@redhat.com \ --cc=philmd@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=rding@gatech.edu \ --subject='Re: [PATCH v2 2/3] megasas: avoid NULL pointer dereference' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.