>> So I have a nagging bad feeling about this one. The code of
>> was copied from _gvariant_valid_signature. So changing this
>> implies changing _gvariant_valid_signature as well...
> So _gvariant_valid_signature is used in two places in ell, one is
> _gvariant_builder_enter_struct where we want to check for a sequence
> of dbus types like in a message signature, so yes, it should accept an
> empty string. The other place is unit/test-gvariant-util.c where
> we're trying to validate a single data type signature so the current
> logic is ok. I'll change the unit test to do "valid =
> (_gvariant_num_children(test->signature) == 1)" instead, and add a
> struct unit test...
I was wrong here, apparently the unit test also tests for "message
signature" type of signatures. Why are we then treating "" as
In theory treating "" as invalid is intended behavior. See how
_dbus_valid_signature is used. However, I don't think we ever tested
empty structs, so feel free to change this.