• L
    util: fix crash when starting macvtap interfaces · 5531a13c
    Laine Stump 提交于
    This patch resolves https://bugzilla.redhat.com/show_bug.cgi?id=815270
    
    The function virNetDevMacVLanVPortProfileRegisterCallback() takes an
    arg "virtPortProfile", and was checking it for non-NULL before using
    it. However, the prototype for
    virNetDevMacVLanPortProfileRegisterCallback had marked that arg with
    ATTRIBUTE_NONNULL(). Contrary to what one may think,
    ATTRIBUTE_NONNULL() does not provide any guarantee that an arg marked
    as such really is always non-null; the only effect to the code
    generated by gcc, is that gcc *assumes* it is non-NULL; this results
    in, for example, the check for a non-NULL value being optimized out.
    
    (Unfortunately, this code removal only occurs when optimization is
    enabled, and I am in the habit of doing local builds with optimization
    off to ease debugging, so the bug didn't show up in my earlier local
    testing).
    
    In general, virPortProfile might always be NULL, so it shouldn't be
    marked as ATTRIBUTE_NONNULL. One other function prototype made this
    same error, so this patch fixes it as well.
    5531a13c
virnetdevmacvlan.h 4.4 KB