On Mon, Sep 04, 2017 at 02:39:17PM +0200, Alexander Bluhm wrote:
> On Wed, Aug 30, 2017 at 09:20:40PM +1000, Jonathan Gray wrote:
> > @@ -680,8 +680,9 @@ config_getproto(struct relayd *env, stru
> >     s = sizeof(*proto);
> >  
> >     styl = IMSG_DATA_SIZE(imsg) - s;
> > +   proto->style = NULL;
> >     if (styl > 0) {
> 
> I think this chunk is the important part of the bugfix.  The
> strndup(3) in get_string() creates a correct NUL termination in any
> case.  A few lines above in config_gettable() I see a simmilar
> problem.  So I would propose this fix instead.

This diff retains the problem of style "" giving the default
instead of an empty style string.

ie

'body { background-color: #a00000; color: white; font-family: 'Comic Sans MS', 
'Chalkboard SE', 'Comic Neue', sans-serif; }
hr { border: 0; border-bottom: 1px dashed; }
'

instead of '' like the previous diff.

Though I'd be fine with it going in as a first step.

> 
> bluhm
> 
> Index: config.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/relayd/config.c,v
> retrieving revision 1.32
> diff -u -p -r1.32 config.c
> --- config.c  27 May 2017 08:33:25 -0000      1.32
> +++ config.c  4 Sep 2017 12:31:48 -0000
> @@ -343,7 +343,8 @@ config_gettable(struct relayd *env, stru
>                       free(tb);
>                       return (-1);
>               }
> -     }
> +     } else
> +             tb->sendbuf = NULL;
>  
>       TAILQ_INIT(&tb->hosts);
>       TAILQ_INSERT_TAIL(env->sc_tables, tb, entry);
> @@ -685,7 +686,8 @@ config_getproto(struct relayd *env, stru
>                       free(proto);
>                       return (-1);
>               }
> -     }
> +     } else
> +             proto->style = NULL;
>  
>       TAILQ_INIT(&proto->rules);
>       proto->tlscapass = NULL;
> 

Reply via email to