Skip to content
  • U. Artie Eoff's avatar
    server: fix potential memleak and NULL deref · 0f23b73a
    U. Artie Eoff authored
    
    
    If for some reason that errno is neither value (ENOMEM or
    EINVAL), then prior to this patch, there would be a NULL
    deref in wl_closure_lookup(...) at the "else if" conditional
    when closure == NULL. Also, closure might not be NULL but still
    fall into the block due to the wl_closure_lookup < 0 condition...
    in that case, we need to destroy the closure to avoid a memory
    leak.
    
    Currently, wl_connection_demarshal only sets errno to ENOMEM
    or EINVAL... we've already checked for ENOMEM so remove check
    for EINVAL (just assume it).  Also, call wl_closure_destroy(...)
    unconditionally in the "else if" block (assume it can handle
    NULL closure, too, which it does right now).
    
    Signed-off-by: default avatarU. Artie Eoff <ullysses.a.eoff@intel.com>
    0f23b73a