All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olivier MATZ <olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: Alan Carew <alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v2] librte_cmdline: FreeBSD Fix oveflow when size of command result structure is greater than BUFSIZ
Date: Fri, 05 Dec 2014 15:16:06 +0100	[thread overview]
Message-ID: <5481BE26.9080903@6wind.com> (raw)
In-Reply-To: <1415611146-32368-1-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Hi Alan,
On 11/10/2014 10:19 AM, Alan Carew wrote:
> When using test-pmd with flow director in FreeBSD, the application will
> segfault/Bus error while parsing the command-line. This is due to how
> each commands result structure is represented during parsing, where the offsets
> for each tokens value is stored in a character array(char result_buf[BUFSIZ])
> in cmdline_parse()(./lib/librte_cmdline/cmdline_parse.c).
> 
> The overflow occurs where BUFSIZ is less than the size of a commands result
> structure, in this case "struct cmd_pkt_filter_result"
> (app/test-pmd/cmdline.c) is 1088 bytes and BUFSIZ on FreeBSD is 1024 bytes as
> opposed to 8192 bytes on Linux.
> 
> The problem can be reproduced by running test-pmd on FreeBSD:
> ./testpmd -c 0x3 -n 4 -- -i --portmask=0x3 --pkt-filter-mode=perfect
> And adding a filter:
> add_perfect_filter 0 udp src 192.168.0.0 1024 dst 192.168.0.0 1024 flexbytes
> 0x800 vlan 0 queue 0 soft 0x17
> 
> This patch removes the OS dependency on BUFSIZ and defines and uses a
> library #define CMDLINE_PARSE_RESULT_BUFSIZE 8192
> 
> Added boundary checking to ensure this buffer size cannot overflow, with
> an error message being produced.
> 
> Suggested-by: Olivier MATZ <olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
> http://git.droids-corp.org/?p=libcmdline.git;a=commitdiff;h=b1d5b169352e57df3fc14c51ffad4b83f3e5613f
> 
> Signed-off-by: Alan Carew <alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

I think some checks are missing compared to the original patch. The
cmdline_parse_xxx() functions should be modified too. Please see a
v3 in my next email.

Regards,
Olivier

  parent reply	other threads:[~2014-12-05 14:16 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-22 18:34 [PATCH 00/10] VM Power Management Alan Carew
     [not found] ` <1411410879-28872-1-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-22 18:34   ` [PATCH 01/10] Channel Manager and Monitor for VM Power Management(Host) Alan Carew
2014-09-22 18:34   ` [PATCH 02/10] VM Power Management CLI(Host) Alan Carew
2014-09-22 18:34   ` [PATCH 03/10] CPU Frequency Power Management(Host) Alan Carew
2014-09-22 18:34   ` [PATCH 04/10] " Alan Carew
2014-09-22 18:34   ` [PATCH 05/10] VM communication channels for VM Power Management(Guest) Alan Carew
2014-09-22 18:34   ` [PATCH 06/10] Alternate implementation of librte_power " Alan Carew
     [not found]     ` <1411410879-28872-7-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-22 19:17       ` Neil Horman
     [not found]         ` <20140922191753.GH25406-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-23  7:48           ` Carew, Alan
2014-09-22 18:34   ` [PATCH 07/10] Packet format for VM Power Management(Host and Guest) Alan Carew
2014-09-22 18:34   ` [PATCH 08/10] Build system integration for VM Power Management(Guest and Host) Alan Carew
2014-09-22 18:34   ` [PATCH 09/10] VM Power Management Unit Tests(Guest) Alan Carew
2014-09-22 18:34   ` [PATCH 10/10] VM Power Management CLI(Guest) Alan Carew
2014-09-24 17:26   ` [PATCH v2 00/10] VM Power Management Alan Carew
     [not found]     ` <1411579576-21786-1-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-24 17:26       ` [PATCH v2 01/10] Channel Manager and Monitor for VM Power Management(Host) Alan Carew
2014-09-24 17:26       ` [PATCH v2 02/10] VM Power Management CLI(Host) Alan Carew
2014-09-24 17:26       ` [PATCH v2 03/10] CPU Frequency Power Management(Host) Alan Carew
2014-09-24 17:26       ` [PATCH v2 04/10] VM Power Management application and Makefile Alan Carew
2014-09-24 17:26       ` [PATCH v2 05/10] VM Power Management CLI(Guest) Alan Carew
2014-09-24 17:26       ` [PATCH v2 06/10] VM communication channels for VM Power Management(Guest) Alan Carew
2014-09-24 17:26       ` [PATCH v2 07/10] librte_power common interface for Guest and Host Alan Carew
     [not found]         ` <1411579576-21786-8-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-25 10:10           ` Neil Horman
     [not found]             ` <20140925101003.GA32725-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-25 17:06               ` Carew, Alan
     [not found]                 ` <0E29434AEE0C3A4180987AB476A6F6306D278070-kPTMFJFq+rHjxeytcECX8bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-25 17:49                   ` Neil Horman
2014-09-24 17:26       ` [PATCH v2 08/10] Packet format for VM Power Management(Host and Guest) Alan Carew
2014-09-24 17:26       ` [PATCH v2 09/10] Build system integration for VM Power Management(Guest and Host) Alan Carew
2014-09-24 17:26       ` [PATCH v2 10/10] VM Power Management Unit Tests Alan Carew
2014-09-25  2:56       ` [PATCH v2 00/10] VM Power Management Liu, Yong
2014-09-29 15:18       ` [PATCH v3 " Alan Carew
     [not found]         ` <1412003903-9061-1-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-29 15:18           ` [PATCH v3 01/10] Channel Manager and Monitor for VM Power Management(Host) Alan Carew
2014-09-29 15:18           ` [PATCH v3 02/10] VM Power Management CLI(Host) Alan Carew
2014-09-29 15:18           ` [PATCH v3 03/10] CPU Frequency Power Management(Host) Alan Carew
2014-09-29 15:18           ` [PATCH v3 04/10] VM Power Management application and Makefile Alan Carew
2014-09-29 15:18           ` [PATCH v3 05/10] VM Power Management CLI(Guest) Alan Carew
2014-09-29 15:18           ` [PATCH v3 06/10] VM communication channels for VM Power Management(Guest) Alan Carew
2014-09-29 15:18           ` [PATCH v3 07/10] librte_power common interface for Guest and Host Alan Carew
2014-09-29 15:18           ` [PATCH v3 08/10] Packet format for VM Power Management(Host and Guest) Alan Carew
2014-09-29 15:18           ` [PATCH v3 09/10] Build system integration for VM Power Management(Guest and Host) Alan Carew
2014-09-29 15:18           ` [PATCH v3 10/10] VM Power Management Unit Tests Alan Carew
2014-09-29 17:29           ` [PATCH v3 00/10] VM Power Management Neil Horman
2014-10-12 19:36           ` [PATCH v4 " Alan Carew
     [not found]             ` <1413142571-23069-1-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-12 19:36               ` [PATCH v4 01/10] Channel Manager and Monitor for VM Power Management(Host) Alan Carew
2014-10-12 19:36               ` [PATCH v4 02/10] VM Power Management CLI(Host) Alan Carew
2014-10-12 19:36               ` [PATCH v4 03/10] CPU Frequency Power Management(Host) Alan Carew
2014-10-12 19:36               ` [PATCH v4 04/10] VM Power Management application and Makefile Alan Carew
     [not found]                 ` <1413142571-23069-5-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-16 18:28                   ` De Lara Guarch, Pablo
2014-10-12 19:36               ` [PATCH v4 05/10] VM Power Management CLI(Guest) Alan Carew
2014-10-12 19:36               ` [PATCH v4 06/10] VM communication channels for VM Power Management(Guest) Alan Carew
2014-10-12 19:36               ` [PATCH v4 07/10] librte_power common interface for Guest and Host Alan Carew
2014-10-12 19:36               ` [PATCH v4 08/10] Packet format for VM Power Management(Host and Guest) Alan Carew
2014-10-12 19:36               ` [PATCH v4 09/10] Build system integration for VM Power Management(Guest and Host) Alan Carew
2014-10-12 19:36               ` [PATCH v4 10/10] VM Power Management Unit Tests Alan Carew
2014-10-13  6:17               ` [PATCH v4 00/10] VM Power Management Liu, Yong
2014-10-13 20:26               ` Thomas Monjalon
2014-10-14 12:37                 ` Carew, Alan
     [not found]                   ` <0E29434AEE0C3A4180987AB476A6F6306D28093B-kPTMFJFq+rHjxeytcECX8bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-14 15:03                     ` Thomas Monjalon
2014-10-16 15:21                       ` Carew, Alan
     [not found]                         ` <0E29434AEE0C3A4180987AB476A6F6306D2811AD-kPTMFJFq+rHjxeytcECX8bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-28 15:21                           ` Thomas Monjalon
2014-11-10  9:05                             ` Carew, Alan
     [not found]                               ` <0E29434AEE0C3A4180987AB476A6F6306D28E7DF-kPTMFJFq+rHjxeytcECX8bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-10 17:54                                 ` O'driscoll, Tim
     [not found]                                   ` <26FA93C7ED1EAA44AB77D62FBE1D27BA54C4BD63-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-21 23:51                                     ` Zhu, Heqing
2014-11-22 17:17                                     ` Vincent JARDIN
2014-11-22 17:17                                       ` [Qemu-devel] [dpdk-dev] " Vincent JARDIN
     [not found]                                       ` <5470C514.3080307-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-12-09 17:35                                         ` Paolo Bonzini
2014-12-09 17:35                                           ` [Qemu-devel] " Paolo Bonzini
     [not found]                                           ` <548732C9.2020201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-11 23:18                                             ` Thomas Monjalon
2014-12-11 23:18                                               ` [Qemu-devel] [dpdk-dev] " Thomas Monjalon
2014-12-12 13:00                                               ` Carew, Alan
2014-12-12 13:00                                                 ` [Qemu-devel] [dpdk-dev] " Carew, Alan
2014-12-12 14:50                                                 ` Paolo Bonzini
2014-12-12 14:50                                                   ` [Qemu-devel] " Paolo Bonzini
     [not found]                                                   ` <548B00B3.8040201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-12 16:10                                                     ` Thomas Monjalon
2014-12-12 16:10                                                       ` [Qemu-devel] [dpdk-dev] " Thomas Monjalon
2014-12-12 16:13                                                       ` Paolo Bonzini
2014-12-12 16:13                                                         ` [Qemu-devel] " Paolo Bonzini
2014-11-21 17:42               ` [PATCH v5 00/10] Virtual Machine " Pablo de Lara
     [not found]                 ` <1416591732-3735-1-git-send-email-pablo.de.lara.guarch-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-21 17:42                   ` [PATCH v5 01/10] Channel Manager and Monitor for VM Power Management(Host) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 02/10] VM Power Management CLI(Host) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 03/10] CPU Frequency Power Management(Host) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 04/10] VM Power Management application and Makefile Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 05/10] VM Power Management CLI(Guest) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 06/10] VM communication channels for VM Power Management(Guest) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 07/10] librte_power common interface for Guest and Host Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 08/10] Packet format for VM Power Management(Host and Guest) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 09/10] Build system integration for VM Power Management(Guest and Host) Pablo de Lara
2014-11-21 17:42                   ` [PATCH v5 10/10] VM Power Management Unit Tests Pablo de Lara
2014-11-25 16:18                   ` [PATCH v6 00/10] Virtual Machine Power Management Pablo de Lara
     [not found]                     ` <1416932291-13162-1-git-send-email-pablo.de.lara.guarch-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-25 16:18                       ` [PATCH v6 01/10] Channel Manager and Monitor for VM Power Management(Host) Pablo de Lara
     [not found]                         ` <1416932291-13162-2-git-send-email-pablo.de.lara.guarch-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-29 15:21                           ` Neil Horman
2014-11-25 16:18                       ` [PATCH v6 02/10] VM Power Management CLI(Host) Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 03/10] CPU Frequency Power Management(Host) Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 04/10] VM Power Management application and Makefile Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 05/10] VM Power Management CLI(Guest) Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 06/10] VM communication channels for VM Power Management(Guest) Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 07/10] librte_power common interface for Guest and Host Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 08/10] Packet format for VM Power Management(Host and Guest) Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 09/10] Build system integration for VM Power Management(Guest and Host) Pablo de Lara
2014-11-25 16:18                       ` [PATCH v6 10/10] VM Power Management Unit Tests Pablo de Lara
2014-11-26 16:41                       ` [PATCH v6 00/10] Virtual Machine Power Management Thomas Monjalon
2014-11-10  9:19           ` [PATCH v2] librte_cmdline: FreeBSD Fix oveflow when size of command result structure is greater than BUFSIZ Alan Carew
     [not found]             ` <1415611146-32368-1-git-send-email-alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-12-05 14:16               ` Olivier MATZ [this message]
     [not found]                 ` <5481BE26.9080903-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-12-05 14:19                   ` [PATCH v3] " Olivier Matz
     [not found]                     ` <1417789147-5636-1-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-12-05 15:51                       ` Bruce Richardson
2014-12-05 15:58                         ` Thomas Monjalon

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=5481BE26.9080903@6wind.com \
    --to=olivier.matz-pdr9zngts4eavxtiumwx3w@public.gmane.org \
    --cc=alan.carew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    /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.