# HG changeset patch # User jwe # Date 1045856521 0 # Node ID 1e7f4405e03734d930818e781f28496f04378dd3 # Parent b4661459eff7593c047b6d4bf4b84685bf0becb7 [project @ 2003-02-21 19:42:01 by jwe] diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2003-02-21 Paul Kienzle + + * utils.cc (octave_vsnprintf): Return value of vsnprintf is int, + not size_t. Make sure there is some space left in the buffer for + vsnprintf versions which return the number of characters written + even when the buffer is too short. + 2003-02-20 John W. Eaton * debug.cc (get_user_function): Use dynamic_cast, not static_cast. diff --git a/src/utils.cc b/src/utils.cc --- a/src/utils.cc +++ b/src/utils.cc @@ -914,7 +914,7 @@ static char *buf = 0; - size_t nchars; + int nchars; if (! buf) buf = new char [size]; @@ -958,7 +958,7 @@ END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE; - if (nchars > -1) + if (nchars > -1 && nchars < size-1) return buf; else { diff --git a/test/octave.test/signal/detrend-3.m b/test/octave.test/signal/detrend-3.m --- a/test/octave.test/signal/detrend-3.m +++ b/test/octave.test/signal/detrend-3.m @@ -7,4 +7,4 @@ t = (0:1:N-1)/N; x = [t;4*t-3]'; y = detrend(x); -all (all (abs (y) < 10*eps)) +all (all (abs (y) < 20*eps))