[dpdk-dev] [RFC v2] porting AddressSanitizer feature to DPDK

Lin, Xueqin xueqin.lin at intel.com
Wed Jun 16 11:13:48 CEST 2021


> -----Original Message-----
> From: Jerin Jacob <jerinjacobk at gmail.com>
> Sent: Tuesday, June 15, 2021 4:40 PM
> To: Peng, ZhihongX <zhihongx.peng at intel.com>
> Cc: Burakov, Anatoly <anatoly.burakov at intel.com>; Ananyev, Konstantin
> <konstantin.ananyev at intel.com>; Stephen Hemminger
> <stephen at networkplumber.org>; dpdk-dev <dev at dpdk.org>; Lin, Xueqin
> <xueqin.lin at intel.com>
> Subject: Re: [dpdk-dev] [RFC v2] porting AddressSanitizer feature to DPDK
> 
> On Tue, Jun 15, 2021 at 1:46 PM <zhihongx.peng at intel.com> wrote:
> >
> > From: Zhihong Peng <zhihongx.peng at intel.com>
> >
> > AddressSanitizer (ASan) is a google memory error detect standard tool.
> > It could help to detect use-after-free and {heap,stack,global}-buffer
> > overflow bugs in C/C++ programs, print detailed error information when
> > error happens, large improve debug efficiency.
> >
> > By referring to its implementation algorithm
> > (https://github.com/google/sanitizers/wiki/AddressSanitizerAlgorithm),
> > ported heap-buffer-overflow and use-after-freefunctions to dpdk.
> >
> > Here is an example of heap-buffer-overflow bug:
> >         ......
> >         char *p = rte_zmalloc(NULL, 7, 0);
> >         p[7] = 'a';
> >         ......
> >
> > Here is an example of use-after-free bug:
> >         ......
> >         char *p = rte_zmalloc(NULL, 7, 0);
> >         rte_free(p);
> >         *p = 'a';
> >         ......
> >
> > If you want to use this feature,
> > you need to use the following compilation options:
> > -Db_lundef=false -Db_sanitize=address
> 
> # Thanks for this patch. It is a useful item.
> 
> # Subject could be changed
> from:
> porting AddressSanitizer feature to DPDK to
> eal: support for  AddressSanitizer
> or so

Thanks for your positive feedback and review.
Good point, we will update the title in next version.

> 
> # Could you add a section in the documentation for Sanitizers to document the
> build time option and other points that users need to know.

Make sense to add build option and key points to document, will add this part in doc folder.

> We can add other sanitizers such as UBSan etc in the future here
WIP to research other sanitizer tool. 
> 
> # Add a UT test case to make sure it is working in app/test or so.

This tool could help to detect memory issue, need to change bad code to check if working. 
Suggest listing demo code and tool capture information for user to try if tool works, also add this part into doc.

> 
> # Also, Please update the release note for this feature.
Sure, we can update the release note if code merge. 



More information about the dev mailing list