Message ID | 20250911135144.56586-7-mzamazal@redhat.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
2025. 09. 11. 15:51 keltezéssel, Milan Zamazal írta: > If the histogram size is non-zero but lower than the number of bins, > yHistValsPerBin is zero and then the AGC processing crashes on division > by it. Let's check yHistValsPerBin for being zero and stop AGC > processing in such a case. The condition also covers the cases where > histogramSize or yHistValsPerBinMod are zero. > > Signed-off-by: Milan Zamazal <mzamazal@redhat.com> > --- Tested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > src/ipa/simple/algorithms/agc.cpp | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp > index c46bb0ebe..e47949ec4 100644 > --- a/src/ipa/simple/algorithms/agc.cpp > +++ b/src/ipa/simple/algorithms/agc.cpp > @@ -124,6 +124,12 @@ void Agc::process(IPAContext &context, > unsigned int denom = 0; > unsigned int num = 0; > > + if (yHistValsPerBin == 0) { > + LOG(IPASoftExposure, Debug) > + << "Not adjusting exposure due to insufficient histogram data"; > + return; > + } > + > for (unsigned int i = 0; i < histogramSize; i++) { > unsigned int idx = (i - (i / yHistValsPerBinMod)) / yHistValsPerBin; > exposureBins[idx] += histogram[blackLevelHistIdx + i];
diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp index c46bb0ebe..e47949ec4 100644 --- a/src/ipa/simple/algorithms/agc.cpp +++ b/src/ipa/simple/algorithms/agc.cpp @@ -124,6 +124,12 @@ void Agc::process(IPAContext &context, unsigned int denom = 0; unsigned int num = 0; + if (yHistValsPerBin == 0) { + LOG(IPASoftExposure, Debug) + << "Not adjusting exposure due to insufficient histogram data"; + return; + } + for (unsigned int i = 0; i < histogramSize; i++) { unsigned int idx = (i - (i / yHistValsPerBinMod)) / yHistValsPerBin; exposureBins[idx] += histogram[blackLevelHistIdx + i];
If the histogram size is non-zero but lower than the number of bins, yHistValsPerBin is zero and then the AGC processing crashes on division by it. Let's check yHistValsPerBin for being zero and stop AGC processing in such a case. The condition also covers the cases where histogramSize or yHistValsPerBinMod are zero. Signed-off-by: Milan Zamazal <mzamazal@redhat.com> --- src/ipa/simple/algorithms/agc.cpp | 6 ++++++ 1 file changed, 6 insertions(+)