On Wed, May 15, 2019 at 01:02:05PM +0200, Fernando Fernandez Mancera wrote:
> 
> 
> On 5/15/19 12:58 PM, Phil Sutter wrote:
> > Hey,
> > 
> > On Tue, May 14, 2019 at 11:13:40PM +0200, Fernando Fernandez Mancera wrote:
> > [...]
> >> diff --git a/src/datatype.c b/src/datatype.c
> >> index 6aaf9ea..7e9ec5e 100644
> >> --- a/src/datatype.c
> >> +++ b/src/datatype.c
> >> @@ -297,11 +297,22 @@ static void verdict_type_print(const struct expr 
> >> *expr, struct output_ctx *octx)
> >>    }
> >>  }
> >>  
> >> +static struct error_record *verdict_type_parse(const struct expr *sym,
> >> +                                         struct expr **res)
> >> +{
> >> +  *res = constant_expr_alloc(&sym->location, &string_type,
> >> +                             BYTEORDER_HOST_ENDIAN,
> >> +                             (strlen(sym->identifier) + 1) * 
> >> BITS_PER_BYTE,
> >> +                             sym->identifier);
> >> +  return NULL;
> >> +}
> > 
> > One more thing: The above lacks error checking of any kind. I *think*
> > this is the place where one should make sure the symbol expression is
> > actually a string (but I'm not quite sure how you do that).
> > 
> > In any case, please try to exploit that variable support in the testcase
> > (or maybe a separate one), just to make sure we don't allow weird
> > things.
> > 
> 
> I think I can get the symbol type and check if it is a string. I will
> check this on the testcase as you said. Thanks!

There's not much we can do in this case I think, have a look at
string_type_parse().

Reply via email to