* [drm-intel:drm-intel-next-queued 4/6] drivers/gpu/drm/drm_hdcp.c:190 drm_hdcp_parse_hdcp2_srm() warn: mask and shift to zero
@ 2019-05-10 10:11 Dan Carpenter
0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2019-05-10 10:11 UTC (permalink / raw)
To: kbuild, Ramalingam C; +Cc: Daniel Vetter, intel-gfx, kbuild-all, dri-devel
tree: git://anongit.freedesktop.org/drm-intel drm-intel-next-queued
head: c16fd9be70faf3c49a61700efd16018dd910e390
commit: 6498bf5800a302ef69e7f4914e727893f278bb2f [4/6] drm: revocation check at drm subsystem
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/gpu/drm/drm_hdcp.c:190 drm_hdcp_parse_hdcp2_srm() warn: mask and shift to zero
git remote add drm-intel git://anongit.freedesktop.org/drm-intel
git remote update drm-intel
git checkout 6498bf5800a302ef69e7f4914e727893f278bb2f
vim +190 drivers/gpu/drm/drm_hdcp.c
6498bf58 Ramalingam C 2019-05-07 151 static int drm_hdcp_parse_hdcp2_srm(const u8 *buf, size_t count)
6498bf58 Ramalingam C 2019-05-07 152 {
6498bf58 Ramalingam C 2019-05-07 153 struct hdcp_srm_header *header;
6498bf58 Ramalingam C 2019-05-07 154 u32 vrl_length, ksv_count, ksv_sz;
6498bf58 Ramalingam C 2019-05-07 155
6498bf58 Ramalingam C 2019-05-07 156 if (count < (sizeof(struct hdcp_srm_header) +
6498bf58 Ramalingam C 2019-05-07 157 DRM_HDCP_2_VRL_LENGTH_SIZE + DRM_HDCP_2_DCP_SIG_SIZE)) {
6498bf58 Ramalingam C 2019-05-07 158 DRM_ERROR("Invalid blob length\n");
6498bf58 Ramalingam C 2019-05-07 159 return -EINVAL;
6498bf58 Ramalingam C 2019-05-07 160 }
6498bf58 Ramalingam C 2019-05-07 161
6498bf58 Ramalingam C 2019-05-07 162 header = (struct hdcp_srm_header *)buf;
6498bf58 Ramalingam C 2019-05-07 163 DRM_DEBUG("SRM ID: 0x%x, SRM Ver: 0x%x, SRM Gen No: 0x%x\n",
6498bf58 Ramalingam C 2019-05-07 164 header->srm_id & DRM_HDCP_SRM_ID_MASK,
6498bf58 Ramalingam C 2019-05-07 165 be16_to_cpu(header->srm_version), header->srm_gen_no);
6498bf58 Ramalingam C 2019-05-07 166
6498bf58 Ramalingam C 2019-05-07 167 if (header->reserved)
6498bf58 Ramalingam C 2019-05-07 168 return -EINVAL;
6498bf58 Ramalingam C 2019-05-07 169
6498bf58 Ramalingam C 2019-05-07 170 buf = buf + sizeof(*header);
6498bf58 Ramalingam C 2019-05-07 171 vrl_length = get_vrl_length(buf);
6498bf58 Ramalingam C 2019-05-07 172
6498bf58 Ramalingam C 2019-05-07 173 if (count < (sizeof(struct hdcp_srm_header) + vrl_length) ||
6498bf58 Ramalingam C 2019-05-07 174 vrl_length < (DRM_HDCP_2_VRL_LENGTH_SIZE +
6498bf58 Ramalingam C 2019-05-07 175 DRM_HDCP_2_DCP_SIG_SIZE)) {
6498bf58 Ramalingam C 2019-05-07 176 DRM_ERROR("Invalid blob length or vrl length\n");
6498bf58 Ramalingam C 2019-05-07 177 return -EINVAL;
6498bf58 Ramalingam C 2019-05-07 178 }
6498bf58 Ramalingam C 2019-05-07 179
6498bf58 Ramalingam C 2019-05-07 180 /* Length of the all vrls combined */
6498bf58 Ramalingam C 2019-05-07 181 vrl_length -= (DRM_HDCP_2_VRL_LENGTH_SIZE +
6498bf58 Ramalingam C 2019-05-07 182 DRM_HDCP_2_DCP_SIG_SIZE);
6498bf58 Ramalingam C 2019-05-07 183
6498bf58 Ramalingam C 2019-05-07 184 if (!vrl_length) {
6498bf58 Ramalingam C 2019-05-07 185 DRM_ERROR("No vrl found\n");
6498bf58 Ramalingam C 2019-05-07 186 return -EINVAL;
6498bf58 Ramalingam C 2019-05-07 187 }
6498bf58 Ramalingam C 2019-05-07 188
6498bf58 Ramalingam C 2019-05-07 189 buf += DRM_HDCP_2_VRL_LENGTH_SIZE;
6498bf58 Ramalingam C 2019-05-07 @190 ksv_count = (*buf << 2) | DRM_HDCP_2_KSV_COUNT_2_LSBITS(*(buf + 1));
#define DRM_HDCP_2_KSV_COUNT_2_LSBITS(byte) (((byte) & 0xC) >> 6)
0xC >> 6 is always zero.
6498bf58 Ramalingam C 2019-05-07 191 if (!ksv_count) {
6498bf58 Ramalingam C 2019-05-07 192 DRM_DEBUG("Revoked KSV count is 0\n");
6498bf58 Ramalingam C 2019-05-07 193 return count;
6498bf58 Ramalingam C 2019-05-07 194 }
6498bf58 Ramalingam C 2019-05-07 195
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-10 10:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-10 10:11 [drm-intel:drm-intel-next-queued 4/6] drivers/gpu/drm/drm_hdcp.c:190 drm_hdcp_parse_hdcp2_srm() warn: mask and shift to zero Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox