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.
Original issue reported on code.google.com by savmick...@gmail.com on 15 Nov 2012 at 4:35
Original issue reported on code.google.com by
savmick...@gmail.com
on 15 Nov 2012 at 4:35Attachments: