[ovs-dev] [PATCH 1/2] odp-util: Fix a bug that causes stack overflow

Yifeng Sun pkusunyifeng at gmail.com
Thu Oct 11 20:33:37 UTC 2018


In scan_set, '\0' is not always put in the buf.
Ok, I think this patch is not the correct way to fix this issue,
I will come up with a new version.

Thanks,
Yifeng

On Thu, Oct 11, 2018 at 1:18 PM Ben Pfaff <blp at ovn.org> wrote:

> On Tue, Oct 09, 2018 at 03:39:17PM -0700, Yifeng Sun wrote:
> > ofpbuf_put_hex doesn't know buf's length and only checks buf's content
> > to process. This is dangerous. This patch fixes it.
> >
> > Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10865
> > Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10863
> > Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10855
> > Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
> > ---
> >  lib/odp-util.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/lib/odp-util.c b/lib/odp-util.c
> > index 7705bb30ae21..d482d5bcf968 100644
> > --- a/lib/odp-util.c
> > +++ b/lib/odp-util.c
> > @@ -2107,6 +2107,7 @@ parse_odp_push_nsh_action(const char *s, struct
> ofpbuf *actions)
> >              if (ovs_scan_len(s, &n, "md2=0x%511[0-9a-fA-F]", buf)) {
> >                  ofpbuf_use_stub(&b, metadata,
> >                                  NSH_CTX_HDRS_MAX_LEN);
> > +                buf[n - 6] = '\0';
>
> I don't understand this patch yet.  ovs_scan_len() should always
> null-terminate buf.  Are there cases where it does not do that?
>


More information about the dev mailing list