Closed
Description
Originally reported on Google Code with ID 190
VS11 analyzer raises the three followings problems in pi.c:
C6385 Dépassement en lecture Lecture de données non valides depuis 'l_tmp_ptr' : la
taille lisible est 'p_image->numcomps*sizeof(OPJ_UINT32 *)' octets, mais '8' octets
sont peut-être lus. openjp2 pi.c 1306
'l_tmp_ptr' est un tableau de valeur inconnue(98175996) octets 1192
Ignorer cette branche, (supposer que '!l_tmp_ptr' a la valeur false) 1195
Ignorer cette branche, (supposer que '!l_pi' a la valeur false) 1203
Ignorer cette boucle, (supposer que 'compno<p_image->numcomps' a la valeur false) 1212
'l_tmp_ptr' is an In/Out argument to 'opj_get_all_encoding_parameters' (declared
on line 170) 1218
Ignorer cette branche, (supposer que '!l_current_pi->include' a la valeur false) 1232
Ignorer cette boucle, (supposer que 'compno<l_current_pi->numcomps' a la valeur false) 1261
Entrer dans cette boucle, (supposer 'pino<l_bound') 1284
Ignorer cette boucle, (supposer que 'compno<l_current_pi->numcomps' a la valeur false) 1303
Continuer cette boucle, (supposer 'pino<l_bound') 1284
Entrer dans cette boucle, (supposer 'compno<l_current_pi->numcomps') 1303
'compno' peut être égal à 1 1303
Continuer cette boucle, (supposer 'compno<l_current_pi->numcomps') 1303
Lecture incorrecte depuis 'l_tmp_ptr[1]', (plage de lecture entre 0 et -1) 1306
C6385 Dépassement en lecture Lecture de données non valides depuis 'l_tmp_ptr' : la
taille lisible est 'p_image->numcomps*sizeof(OPJ_UINT32 *)' octets, mais '8' octets
sont peut-être lus. openjp2 pi.c 1495
'l_tmp_ptr' est un tableau de valeur inconnue(100322380) octets 1393
Ignorer cette branche, (supposer que '!l_tmp_ptr' a la valeur false) 1395
Ignorer cette branche, (supposer que '!l_pi' a la valeur false) 1402
Ignorer cette boucle, (supposer que 'compno<p_image->numcomps' a la valeur false) 1410
'l_tmp_ptr' is an In/Out argument to 'opj_get_all_encoding_parameters' (declared
on line 170) 1416
Ignorer cette branche, (supposer que '!l_current_pi->include' a la valeur false) 1430
Ignorer cette boucle, (supposer que 'compno<l_current_pi->numcomps' a la valeur false) 1454
Entrer dans cette boucle, (supposer 'pino<l_bound') 1476
Ignorer cette boucle, (supposer que 'compno<l_current_pi->numcomps' a la valeur false) 1493
Continuer cette boucle, (supposer 'pino<l_bound') 1476
Entrer dans cette boucle, (supposer 'compno<l_current_pi->numcomps') 1493
'compno' peut être égal à 1 1493
Continuer cette boucle, (supposer 'compno<l_current_pi->numcomps') 1493
Lecture incorrecte depuis 'l_tmp_ptr[1]', (plage de lecture entre 0 et -1) 1495
C6001 Utilisation de la mémoire non initialisée Utilisation de la mémoire non initialisée
'*l_current_component'. openjp2 pi.c 1804
'*l_current_component' n'est pas initialisé 1811
Entrer dans cette boucle, (supposer 'pino<p_nb_elements') 1800
Entrer dans cette branche, (supposer 'l_current_pi->comps') 1801
Continuer cette boucle, (supposer 'compno<l_current_pi->numcomps') 1803
Ignorer cette branche, (supposer que '<condition de branche>' a la valeur false) 1804
'*l_current_component' est utilisé, mais n'a peut-être pas été initialisé 1804
The attached patch can solve the two first problems and potentially the third but must
be carefully analyzed.
Reported by savmickael on 2012-11-15 16:35:18
- _Attachment: [pi.c.patch](https://storage.googleapis.com/google-code-attachments/openjpeg/issue-190/comment-0/pi.c.patch)_