Skip to content
  • Peter Maydell's avatar
    tests/test-string-input-visitor: Handle errors provoked by fuzz test · 01845438
    Peter Maydell authored
    
    
    It's OK and expected for visitors to return errors when presented with
    the fuzz test's random data. Since the fuzzer doesn't care about
    errors, we pass in NULL rather than an Error**. This fixes a bug in
    the fuzzer where it was passing the same Error** into each visitor,
    with the effect that once one visitor returned an error, each later
    visitor would notice that it had been passed in an Error** representing
    an already set error, and do nothing.
    
    For the case of visit_type_str() we also need to handle the case where
    an error means that the visitor doesn't set our char*. We initialize
    the pointer to NULL so we can safely g_free() it regardless of whether
    the visitor allocated a string for us or not.
    
    This fixes a problem where this test failed the MacOSX malloc()
    consistency checks and might segfault on other platforms [due
    to calling free() on an uninitialized pointer variable when
    visit_type_str() failed.].
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarAndreas Färber <afaerber@suse.de>
    Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    01845438