I don't want to do a patch for a one character error. Yet, that's a HUGE
error and it really needs to be fixed.
Once you have a pg_database file which is over 1 page, it CRASHES. That's
what it did on me. Yes! I have many databases or rather, I often destroy
my databases to regenerate them from scratch (that's for me the easiest
way to do it). Because of that, the pg_database is now two pages.
The utils/misc/database.c has a function called GetRawDatabaseInfo()
which reads that file "on its own". There is a HUGE bug in there, and
it may not always crash a system, but it really needs to be fixed.
At line #183, you have a for() loop which looks like this (since at
least V6.5.0 and still present in V7.0.3):
for (i = 0; i <= max; i++)
All the other such loops start with an index of 1, not zero. And
therefore you want the <=. In this special case loop (or are all
the others special cases?!?) you need to use the following:
for(i = 0; i < max; i++)
Please, I know it's easier when you get a patch, but FIX IT. It's
not fun to try to access your database and have the backend crash
because of such a tiny bug!
Thank you for all your work.
Made to Order Software, Ltd
Web Page: http://www.m2osw.com
Company e-mail: contact(at)m2osw(dot)com
Phone: 020 8748 9898 +(44) 20 8748 9898
Fax: 020 8748 4250 +(44) 20 8748 4250
Address: Britannia House
1-11 Glenthorne Road
London W6 0LF
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
pgsql-hackers by date
|Next:||From: Rick Robino||Date: 2001-03-28 11:32:33|
|Subject: Re: Solaris 7 SPARC passes tests (was Re: Re: [BUGS] Tests randomly failed)|
|Previous:||From: Pete Forman||Date: 2001-03-28 09:44:31|
|Subject: Re: RC1 core dumps in initdb on Solaris 2.6 |