• Eric Blake's avatar
    qmp-event: Avoid qobject_from_jsonf("%"PRId64) · 043b5a49
    Eric Blake authored
    The qobject_from_jsonf() function implements a pseudo-printf
    language for creating a QObject; however, it is hard-coded to
    only parse a subset of formats understood by -Wformat, and is
    not a straight synonym to bare printf().  In particular, any
    use of an int64_t integer works only if the system's
    definition of PRId64 matches what the parser expects; which
    works on glibc (%lld or %ld depending on 32- vs. 64-bit) and
    mingw (%I64d), but not on Mac OS (%qd).  Rather than enhance
    the parser, it is just as easy to use 'long long', which we
    know always works.  There are few enough callers of
    qobject_from_json[fv]() that it is easy to audit that this is
    the only non-testsuite caller that was actually relying on
    this particular conversion.
    
    Reported by: G 3 <programmingkidx@gmail.com>
    Signed-off-by: 's avatarEric Blake <eblake@redhat.com>
    Message-Id: <1479922617-4400-2-git-send-email-eblake@redhat.com>
    Reviewed-by: 's avatarMarkus Armbruster <armbru@redhat.com>
    [Cast tv.tv_sec, tv.tv_usec to long long for type correctness]
    Signed-off-by: 's avatarMarkus Armbruster <armbru@redhat.com>
    043b5a49
qmp-event.c 1.3 KB