• Steffen Maier's avatar
    zfcp: fix payload trace length for SAN request&response · 94db3725
    Steffen Maier authored
    commit 2c55b750
    ("[SCSI] zfcp: Redesign of the debug tracing for SAN records.")
    started to add FC_CT_HDR_LEN which made zfcp dump random data
    out of bounds for RSPN GS responses because u.rspn.rsp
    is the largest and last field in the union of struct zfcp_fc_req.
    Other request/response types only happened to stay within bounds
    due to the padding of the union or
    due to the trace capping of u.gspn.rsp to ZFCP_DBF_SAN_MAX_PAYLOAD.
    
    Timestamp      : ...
    Area           : SAN
    Subarea        : 00
    Level          : 1
    Exception      : -
    CPU id         : ..
    Caller         : ...
    Record id      : 2
    Tag            : fsscth2
    Request id     : 0x...
    Destination ID : 0x00fffffc
    Payload short  : 01000000 fc020000 80020000 00000000
                     xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx <===
                     00000000 00000000 00000000 00000000
    Payload length : 32                                  <===
    
    struct zfcp_fc_req {
        [0] struct zfcp_fsf_ct_els ct_els;
       [56] struct scatterlist sg_req;
       [96] struct scatterlist sg_rsp;
            union {
                struct {req; rsp;} adisc;    SIZE: 28+28=   56
                struct {req; rsp;} gid_pn;   SIZE: 24+20=   44
                struct {rspsg; req;} gpn_ft; SIZE: 40*4+20=180
                struct {req; rsp;} gspn;     SIZE: 20+273= 293
                struct {req; rsp;} rspn;     SIZE: 277+16= 293
      [136] } u;
    }
    SIZE: 432
    Signed-off-by: default avatarSteffen Maier <maier@linux.vnet.ibm.com>
    Fixes: 2c55b750 ("[SCSI] zfcp: Redesign of the debug tracing for SAN records.")
    Cc: <stable@vger.kernel.org> #2.6.38+
    Reviewed-by: default avatarAlexey Ishchuk <aishchuk@linux.vnet.ibm.com>
    Reviewed-by: default avatarBenjamin Block <bblock@linux.vnet.ibm.com>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    94db3725
zfcp_dbf.c 16.3 KB