Hi!
On Jul 12, Ingo Strüwing wrote:
> Sergei Golubchik wrote:
> > On Jul 05, Ingo Struewing wrote:
> >> ChangeSet@stripped, 2007-07-05 12:33:13+02:00, istruewing@stripped +3 -0
> >> Bug#28810 - Crash with huge negative decimal for Falcon and CSV
> >>
> >> Debug server crashed when inserting a negated decimal number of
> >> maximum precision (65): INSERT ... SELECT -column ...
> >>
> >> The problem was that the negation function added 1 to the column
> >> length for the sign unconditionally. When the source item was a
> >> signed field with maximum precision, the result was a field with
> >> one more than maximum. This triggered an assert.
> >>
> >> The fix is to avoid adding 1 to max_length when the argument of
> >> the negation function is a signed field . A signed field does
> >> already have space for the sign.
> >
> > ok to push
> > the only comment - why it's in 6.0 tree ? It looks like 5.1 should be
> > affected too, even 5.0 may be.
> > Please push it in 5.0 or 5.1, whichever appropriate.
>
> Sorry, the test case was not able to repeat it in 5.0 or 5.1.
>
> It turned out that it had been fixed differently by Igor meanwhile:
> http://bugs.mysql.com/bug.php?id=29417
>
> Unfortunately, neither Igor nor Sergey noticed that half of the
> DBUG_ASSERT has become obsolete by the fix.
Does your patch fixes their bug (makes test suite to pass) too ?
I think your fix is better, as blindly limiting precision could hide
some real bugs elsewhere. Assert was there for a reason.
Regards / Mit vielen Grüssen,
Sergei
--
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Sergei Golubchik <serg@stripped>
/ /|_/ / // /\ \/ /_/ / /__ Principal Software Developer
/_/ /_/\_, /___/\___\_\___/ MySQL GmbH, Radlkoferstr. 2, D-81373 München
<___/ Geschäftsführer: Kaj Arnö - HRB
München 162140