/* don't forget to release pi */
opj_pi_destroy(l_pi,l_nb_pocs);
- *p_data_read = l_current_data - p_src;
+ assert( l_current_data - p_src < UINT32_MAX );
+ *p_data_read = (OPJ_UINT32)(l_current_data - p_src);
return OPJ_TRUE;
}
c[1] = 145;
c[2] = 0;
c[3] = 4;
+#if 0
c[4] = (tile->packno % 65536) / 256;
c[5] = (tile->packno % 65536) % 256;
+#else
+ c[4] = (tile->packno >> 8) & 0xff; /* packno is uint32_t */
+ c[5] = tile->packno & 0xff;
+#endif
c += 6;
length -= 6;
}
return OPJ_FALSE; /* modified to eliminate longjmp !! */
}
- l_nb_bytes = opj_bio_numbytes(bio);
+ l_nb_bytes = (OPJ_UINT32)opj_bio_numbytes(bio);
c += l_nb_bytes;
length -= l_nb_bytes;
++band;
}
- * p_data_written += (c - dest);
+ assert( c >= dest );
+ * p_data_written += (OPJ_UINT32)(c - dest);
return OPJ_TRUE;
}
else { /* Normal Case */
l_header_data_start = &(l_current_data);
l_header_data = *l_header_data_start;
- l_remaining_length = p_src_data+p_max_length-l_header_data;
+ l_remaining_length = (OPJ_UINT32)(p_src_data+p_max_length-l_header_data);
l_modified_length_ptr = &(l_remaining_length);
}
}
}
- l_header_length = (l_header_data - *l_header_data_start);
+ l_header_length = (OPJ_UINT32)(l_header_data - *l_header_data_start);
*l_modified_length_ptr -= l_header_length;
*l_header_data_start += l_header_length;
/* INDEX >> */
* p_is_data_present = OPJ_FALSE;
- *p_data_read = l_current_data - p_src_data;
+ *p_data_read = (OPJ_UINT32)(l_current_data - p_src_data);
return OPJ_TRUE;
}
do {
l_cblk->segs[l_segno].numnewpasses = opj_int_min(l_cblk->segs[l_segno].maxpasses - l_cblk->segs[l_segno].numpasses, n);
l_cblk->segs[l_segno].newlen = opj_bio_read(l_bio, l_cblk->numlenbits + opj_uint_floorlog2(l_cblk->segs[l_segno].numnewpasses));
- /* testcase 1802.pdf.SIGSEGV.36e.894 */
- if (l_cblk->segs[l_segno].newlen > *l_modified_length_ptr) {
- opj_bio_destroy(l_bio);
- return OPJ_FALSE;
- }
n -= l_cblk->segs[l_segno].numnewpasses;
if (n > 0) {
}
}
- l_header_length = (l_header_data - *l_header_data_start);
+ l_header_length = (OPJ_UINT32)(l_header_data - *l_header_data_start);
*l_modified_length_ptr -= l_header_length;
*l_header_data_start += l_header_length;
/* INDEX >> */
*p_is_data_present = OPJ_TRUE;
- *p_data_read = l_current_data - p_src_data;
+ *p_data_read = (OPJ_UINT32)(l_current_data - p_src_data);
return OPJ_TRUE;
}
OPJ_BYTE* new_cblk_data = (OPJ_BYTE*) opj_realloc(l_cblk->data, l_cblk->data_current_size + l_seg->newlen);
if(! new_cblk_data) {
opj_free(l_cblk->data);
- l_cblk->data = NULL;
l_cblk->data_max_size = 0;
/* opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to realloc code block cata!\n"); */
return OPJ_FALSE;
++l_band;
}
- *(p_data_read) = l_current_data - p_src_data;
+ *(p_data_read) = (OPJ_UINT32)(l_current_data - p_src_data);
return OPJ_TRUE;
}