Thread: Cure for segmentation fault in libpq
I have been troubled by a segmentation fault when reloading from a dumpall. This has been happening when a second \connect is encountered. The faulty code was in fe-connect.c, where the memory for the user password was freed, but the pointer itself was not set to NULL. Later, the memory was reused and the password appeared not to be empty, so that an attempt was made to reference it. Here is the patch: diff -c postgresql-6.3.1{.orig,}/src/interfaces/libpq/fe-connect.c *** postgresql-6.3.1.orig/src/interfaces/libpq/fe-connect.c Thu Feb 26 04:44:59 1998 --- postgresql-6.3.1/src/interfaces/libpq/fe-connect.c Thu Mar 26 18:45:23 1998 *************** *** 667,672 **** --- 667,673 ---- if (conn->pgpass != NULL) { free(conn->pgpass); + conn->pgpass = NULL; } return CONNECTION_OK; -- Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver PGP key from public servers; key ID 32B8FAA1
> > I have been troubled by a segmentation fault when reloading from a dumpall. > This has been happening when a second \connect is encountered. > > The faulty code was in fe-connect.c, where the memory for the user password > was freed, but the pointer itself was not set to NULL. Later, the memory was > reused and the password appeared not to be empty, so that an attempt was > made to reference it. Applied to source tree. -- Bruce Momjian | 830 Blythe Avenue maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026 + If your life is a hard drive, | (610) 353-9879(w) + Christ can be your backup. | (610) 853-3000(h)