jp2: Fix new[] vs delete by not doing new[]

unique_ptr will call delete which is not the right thing to do with
memory allocated with new[]

BUGS: 525120
This commit is contained in:
Albert Astals Cid
2026-09-03 00:13:53 +02:00
parent a6027264d4
commit 72518dcc1a
+12 -13
View File
@@ -622,21 +622,20 @@ public:
m_cparameters.tcp_rates[0] = 100.0 - (m_quality < 10 ? m_quality : 10 + (std::log10(m_quality) - 1) * 90); m_cparameters.tcp_rates[0] = 100.0 - (m_quality < 10 ? m_quality : 10 + (std::log10(m_quality) - 1) * 90);
} }
std::unique_ptr<opj_image_cmptparm_t> cmptparm(new opj_image_cmptparm_t[ncomp]); std::vector<opj_image_cmptparm_t> cmptparm(ncomp);
for (int i = 0; i < ncomp; ++i) { for (opj_image_cmptparm_t &p : cmptparm) {
auto &&p = cmptparm.get() + i; memset(&p, 0, sizeof(opj_image_cmptparm_t));
memset(p, 0, sizeof(opj_image_cmptparm_t)); p.dx = m_cparameters.subsampling_dx;
p->dx = m_cparameters.subsampling_dx; p.dy = m_cparameters.subsampling_dy;
p->dy = m_cparameters.subsampling_dy; p.w = image.width();
p->w = image.width(); p.h = image.height();
p->h = image.height(); p.x0 = 0;
p->x0 = 0; p.y0 = 0;
p->y0 = 0; p.prec = prec;
p->prec = prec; p.sgnd = 0;
p->sgnd = 0;
} }
m_jp2_image = opj_image_create(ncomp, cmptparm.get(), cs); m_jp2_image = opj_image_create(ncomp, cmptparm.data(), cs);
if (m_jp2_image == nullptr) { if (m_jp2_image == nullptr) {
return false; return false;
} }