From 8e273c14def50a167fdfc5837aa2208a7b2ff6f0 Mon Sep 17 00:00:00 2001 From: "A. Sinan Unur" Date: Wed, 21 Oct 2015 15:41:24 -0400 Subject: [PATCH] RT #107900 Panic due to attempt to extend stack by negative amount See https://rt.cpan.org/Public/Bug/Display.html?id=107900 See also http://www.cpantesters.org/distro/I/Imager.html#Imager-1.003?grade=1&perlmat=3&patches=2&oncpan=2&distmat=2&perlver=5.23.4&osname=ALL&version=1.003 Fix by only EXTENDing return stack and pushing values if returned col_cnt is positive. --- Imager.xs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Imager.xs b/Imager.xs index 6a205ba5..6803f046 100644 --- a/Imager.xs +++ b/Imager.xs @@ -2674,12 +2674,17 @@ i_get_anonymous_color_histo(im, maxc = 0x40000000) int col_cnt; PPCODE: col_cnt = i_get_anonymous_color_histo(im, &col_usage, maxc); + if (col_cnt > 0) { EXTEND(SP, col_cnt); for (i = 0; i < col_cnt; i++) { PUSHs(sv_2mortal(newSViv( col_usage[i]))); } myfree(col_usage); XSRETURN(col_cnt); + } + else { + XSRETURN_EMPTY; + } void -- 2.39.5