Skip to content
  • Alan Coopersmith's avatar
    XRRGetProviderInfo returned bad associated_capability list in 64-bit · 9e4abe74
    Alan Coopersmith authored
    
    
    Unlike most of the values returned by this function, which are arrays
    of XIDs (long int), associated_capability is defined as an array of
    unsigned int.   _XRead32 reads 32-bit values from the wire protocol
    and writes them to the provided buffer as an array of long ints, even
    if that means expanding them from 32-bit to 64-bit.   Doing that for
    associated_capability resulted in a garbage value between each actual
    value, and overflowing the provided buffer into the space for the
    provider name (which is written later and would overwrite the overflowed
    data).
    
    Created xhiv libXrandr/XRRGetProviderInfo test case to test & confirm.
    
    Signed-off-by: default avatarAlan Coopersmith <alan.coopersmith@oracle.com>
    Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
    9e4abe74