All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: David Marchand <david.marchand@redhat.com>, dev@dpdk.org
Cc: yux.jiang@intel.com
Subject: Re: [dpdk-dev] [PATCH] eal/linux: fix uevent message parsing
Date: Thu, 4 Nov 2021 14:59:38 +0100	[thread overview]
Message-ID: <9cfb072b-5fd7-7c1e-0050-6c18776e1a4c@redhat.com> (raw)
In-Reply-To: <20211102184020.438-1-david.marchand@redhat.com>



On 11/2/21 19:40, David Marchand wrote:
> Caught with ASan:
> ==9727==ERROR: AddressSanitizer: stack-buffer-overflow on address
>    0x7f0daa2fc0d0 at pc 0x7f0daeefacb2 bp 0x7f0daa2fadd0 sp 0x7f0daa2fa578
> READ of size 1 at 0x7f0daa2fc0d0 thread T1
>      #0 0x7f0daeefacb1  (/lib64/libasan.so.5+0xbacb1)
>      #1 0x115eba1 in dev_uev_parse ../lib/eal/linux/eal_dev.c:167
>      #2 0x115f281 in dev_uev_handler ../lib/eal/linux/eal_dev.c:248
>      #3 0x1169b91 in eal_intr_process_interrupts
>    ../lib/eal/linux/eal_interrupts.c:1026
>      #4 0x116a3a2 in eal_intr_handle_interrupts
>    ../lib/eal/linux/eal_interrupts.c:1100
>      #5 0x116a7f0 in eal_intr_thread_main
>    ../lib/eal/linux/eal_interrupts.c:1172
>      #6 0x112640a in ctrl_thread_init
>    ../lib/eal/common/eal_common_thread.c:202
>      #7 0x7f0dade27159 in start_thread (/lib64/libpthread.so.0+0x8159)
>      #8 0x7f0dadb58f72 in clone (/lib64/libc.so.6+0xfcf72)
> 
> Address 0x7f0daa2fc0d0 is located in stack of thread T1 at offset 4192
>    in frame
>      #0 0x115f0c9 in dev_uev_handler ../lib/eal/linux/eal_dev.c:226
> 
>    This frame has 2 object(s):
>      [32, 48) 'uevent'
>      [96, 4192) 'buf' <== Memory access at offset 4192 overflows this
>    variable
> HINT: this may be a false positive if your program uses some custom
>    stack unwind mechanism or swapcontext
>        (longjmp and C++ exceptions *are* supported)
> Thread T1 created by T0 here:
>      #0 0x7f0daee92ea3 in __interceptor_pthread_create
>    (/lib64/libasan.so.5+0x52ea3)
>      #1 0x1126542 in rte_ctrl_thread_create
>    ../lib/eal/common/eal_common_thread.c:228
>      #2 0x116a8b5 in rte_eal_intr_init
>    ../lib/eal/linux/eal_interrupts.c:1200
>      #3 0x1159dd1 in rte_eal_init ../lib/eal/linux/eal.c:1044
>      #4 0x7a22f8 in main ../app/test-pmd/testpmd.c:4105
>      #5 0x7f0dada7f802 in __libc_start_main (/lib64/libc.so.6+0x23802)
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>   lib/eal/linux/eal_dev.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/lib/eal/linux/eal_dev.c b/lib/eal/linux/eal_dev.c
> index 925cdba553..1fd00a482b 100644
> --- a/lib/eal/linux/eal_dev.c
> +++ b/lib/eal/linux/eal_dev.c
> @@ -160,6 +160,9 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length)
>   				break;
>   			buf++;
>   		}
> +		if (i >= length)
> +			break;
> +
>   		/**
>   		 * check device uevent from kernel side, no need to check
>   		 * uevent from udev.
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


  parent reply	other threads:[~2021-11-04 14:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-02 18:40 [dpdk-dev] [PATCH] eal/linux: fix uevent message parsing David Marchand
2021-11-02 18:43 ` David Marchand
2021-11-03  9:47   ` David Marchand
2021-11-04 13:59 ` Maxime Coquelin [this message]
2021-11-04 14:20   ` David Marchand

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=9cfb072b-5fd7-7c1e-0050-6c18776e1a4c@redhat.com \
    --to=maxime.coquelin@redhat.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=yux.jiang@intel.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.