Segmentation fault in psql
I'm getting a segmentation fault in psql in 7.3.2. Last working version I
had was 7.2.4. Here's the backtrace from the debugger.
Program received signal SIGSEGV, Segmentation fault.
0x4017c8f8 in strlen () at ../sysdeps/generic/strlen.c:150
150 ../sysdeps/generic/strlen.c: No such file or directory.
(gdb) bt
#0 0x4017c8f8 in strlen () at ../sysdeps/generic/strlen.c:150
#1 0x4017c5f8 in strdup () at strdup.c:49
#2 0x412870 in SetVariable (space=0x443aa0, name=0x410a51 "ENCODING",
value=0xd105810 <Address 0xd105810 out of bounds>) at variables.c:107
#3 0x41112c in main (argc=2, argv=0x0) at startup.c:227
I'm getting an invalid address back everytime pg_encoding_to_char is called.
I added a printf to the function (shown below) and then everything works
fine. I think it has something to do with the optimizations but I don't
know where to change that.
const char *
pg_encoding_to_char(int encoding)
{
if (PG_VALID_ENCODING(encoding))
{
pg_enc2name *p = &pg_enc2name_tbl[encoding];
Assert(encoding == p->encoding);
printf("p->name = %s\n",p->name);
return p->name;
}
return "";
}
Patrick Bye
Programmer / Analyst
Westfair Foods Ltd.
pbye@westfair.ca
(403) 291-6538