• David Vrabel's avatar
    xen/blkback: correctly respond to unknown, non-native requests · 0e367ae4
    David Vrabel authored
    If the frontend is using a non-native protocol (e.g., a 64-bit
    frontend with a 32-bit backend) and it sent an unrecognized request,
    the request was not translated and the response would have the
    incorrect ID.  This may cause the frontend driver to behave
    incorrectly or crash.
    
    Since the ID field in the request is always in the same place,
    regardless of the request type we can get the correct ID and make a
    valid response (which will report BLKIF_RSP_EOPNOTSUPP).
    
    This bug affected 64-bit SLES 11 guests when using a 32-bit backend.
    This guest does a BLKIF_OP_RESERVED_1 (BLKIF_OP_PACKET in the SLES
    source) and would crash in blkif_int() as the ID in the response would
    be invalid.
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    0e367ae4
blkback.c 31 KB