CC: [email protected]
TO: [email protected]
TO: Guenter Roeck <[email protected]>

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel 
chromeos-5.10
head:   a173c81fa2514e23768985a124eba2a90718945a
commit: a173c81fa2514e23768985a124eba2a90718945a [3/3] BACKPORT: FROMLIST: 
media: rkvdec: Add the VP9 backend
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: parisc-randconfig-m031-20211104 (attached as .config)
compiler: hppa-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/staging/media/rkvdec/rkvdec-vp9.c:426 init_intra_only_probs() error: 
buffer overflow 'ptr' 90 <= 91

vim +/ptr +426 drivers/staging/media/rkvdec/rkvdec-vp9.c

a173c81fa2514e Boris Brezillon 2020-05-18  376  
a173c81fa2514e Boris Brezillon 2020-05-18  377  static void 
init_intra_only_probs(struct rkvdec_ctx *ctx,
a173c81fa2514e Boris Brezillon 2020-05-18  378                                  
  const struct rkvdec_vp9_run *run)
a173c81fa2514e Boris Brezillon 2020-05-18  379  {
a173c81fa2514e Boris Brezillon 2020-05-18  380          const struct 
v4l2_ctrl_vp9_frame_decode_params *dec_params;
a173c81fa2514e Boris Brezillon 2020-05-18  381          struct rkvdec_vp9_ctx 
*vp9_ctx = ctx->priv;
a173c81fa2514e Boris Brezillon 2020-05-18  382          struct 
rkvdec_vp9_priv_tbl *tbl = vp9_ctx->priv_tbl.cpu;
a173c81fa2514e Boris Brezillon 2020-05-18  383          struct 
rkvdec_vp9_intra_only_frame_probs *rkprobs;
a173c81fa2514e Boris Brezillon 2020-05-18  384          const struct 
v4l2_vp9_probabilities *probs;
a173c81fa2514e Boris Brezillon 2020-05-18  385          unsigned int i, j, k, m;
a173c81fa2514e Boris Brezillon 2020-05-18  386  
a173c81fa2514e Boris Brezillon 2020-05-18  387          rkprobs = 
&tbl->probs.intra_only;
a173c81fa2514e Boris Brezillon 2020-05-18  388          dec_params = 
run->decode_params;
a173c81fa2514e Boris Brezillon 2020-05-18  389          probs = 
&dec_params->probs;
a173c81fa2514e Boris Brezillon 2020-05-18  390  
a173c81fa2514e Boris Brezillon 2020-05-18  391          /*
a173c81fa2514e Boris Brezillon 2020-05-18  392           * intra only 149 x 128 
bits ,aligned to 152 x 128 bits coeff related
a173c81fa2514e Boris Brezillon 2020-05-18  393           * prob 64 x 128 bits
a173c81fa2514e Boris Brezillon 2020-05-18  394           */
a173c81fa2514e Boris Brezillon 2020-05-18  395          for (i = 0; i < 
ARRAY_SIZE(probs->coef); i++) {
a173c81fa2514e Boris Brezillon 2020-05-18  396                  for (j = 0; j < 
ARRAY_SIZE(probs->coef[0]); j++)
a173c81fa2514e Boris Brezillon 2020-05-18  397                          
write_coeff_plane(probs->coef[i][j][0],
a173c81fa2514e Boris Brezillon 2020-05-18  398                                  
          rkprobs->coef_intra[i][j]);
a173c81fa2514e Boris Brezillon 2020-05-18  399          }
a173c81fa2514e Boris Brezillon 2020-05-18  400  
a173c81fa2514e Boris Brezillon 2020-05-18  401          /* intra mode prob  80 
x 128 bits */
a173c81fa2514e Boris Brezillon 2020-05-18  402          for (i = 0; i < 
ARRAY_SIZE(vp9_kf_y_mode_prob); i++) {
a173c81fa2514e Boris Brezillon 2020-05-18  403                  u32 byte_count 
= 0;
a173c81fa2514e Boris Brezillon 2020-05-18  404                  int idx = 0;
a173c81fa2514e Boris Brezillon 2020-05-18  405  
a173c81fa2514e Boris Brezillon 2020-05-18  406                  /* 
vp9_kf_y_mode_prob */
a173c81fa2514e Boris Brezillon 2020-05-18  407                  for (j = 0; j < 
ARRAY_SIZE(vp9_kf_y_mode_prob[0]); j++) {
a173c81fa2514e Boris Brezillon 2020-05-18  408                          for (k 
= 0; k < ARRAY_SIZE(vp9_kf_y_mode_prob[0][0]);
a173c81fa2514e Boris Brezillon 2020-05-18  409                               
k++) {
a173c81fa2514e Boris Brezillon 2020-05-18  410                                  
u8 val = vp9_kf_y_mode_prob[i][j][k];
a173c81fa2514e Boris Brezillon 2020-05-18  411  
a173c81fa2514e Boris Brezillon 2020-05-18  412                                  
rkprobs->intra_mode[i].y_mode[idx++] = val;
a173c81fa2514e Boris Brezillon 2020-05-18  413                                  
byte_count++;
a173c81fa2514e Boris Brezillon 2020-05-18  414                                  
if (byte_count == 27) {
a173c81fa2514e Boris Brezillon 2020-05-18  415                                  
        byte_count = 0;
a173c81fa2514e Boris Brezillon 2020-05-18  416                                  
        idx += 5;
a173c81fa2514e Boris Brezillon 2020-05-18  417                                  
}
a173c81fa2514e Boris Brezillon 2020-05-18  418                          }
a173c81fa2514e Boris Brezillon 2020-05-18  419                  }
a173c81fa2514e Boris Brezillon 2020-05-18  420  
a173c81fa2514e Boris Brezillon 2020-05-18  421                  idx = 0;
a173c81fa2514e Boris Brezillon 2020-05-18  422                  if (i < 4) {
a173c81fa2514e Boris Brezillon 2020-05-18  423                          for (m 
= 0; m < (i < 3 ? 23 : 21); m++) {
a173c81fa2514e Boris Brezillon 2020-05-18  424                                  
const u8 *ptr = (const u8 *)kf_uv_mode_prob;
a173c81fa2514e Boris Brezillon 2020-05-18  425  
a173c81fa2514e Boris Brezillon 2020-05-18 @426                                  
rkprobs->intra_mode[i].uv_mode[idx++] = ptr[i * 23 + m];
a173c81fa2514e Boris Brezillon 2020-05-18  427                          }
a173c81fa2514e Boris Brezillon 2020-05-18  428                  }
a173c81fa2514e Boris Brezillon 2020-05-18  429          }
a173c81fa2514e Boris Brezillon 2020-05-18  430  }
a173c81fa2514e Boris Brezillon 2020-05-18  431  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to