From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Neil Conway <neilc(at)samurai(dot)com> |
Cc: | Magnus Hagander <magnus(at)hagander(dot)net>, pgsql-hackers(at)postgresql(dot)org, Teodor Sigaev <teodor(at)sigaev(dot)ru> |
Subject: | Re: Warning on contrib/tsearch2 |
Date: | 2007-03-28 01:34:46 |
Message-ID: | 12778.1175045686@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Neil Conway <neilc(at)samurai(dot)com> writes:
> In CVS HEAD:
> contrib/tsearch2/dict_syn.c:124: warning: 'slen' is used uninitialized
> in this function
> Induced by the recent pg_verifymbstr() patch.
Seems to be a genuine bug. Fixed, but I see a worse problem with this
code: random backend code should not, not, not be using fopen()
directly. If you lose control to an elog, which is certainly possible
seeing that this loop calls into the utils/mb subsystem, you'll leak
the file descriptor. Use AllocateFile/FreeFile instead of fopen/fclose.
I find the direct use of malloc/realloc/strdup to be poor style as well
--- backend code that is not using palloc needs to have *very* good
reason to do so, and I see none here.
I'm halfway tempted to change postgres.h to #define these functions to
yield errors, and only allow #undef'ing them in the files that are
supposed to access the C library functions directly.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Dezso Zoltan | 2007-03-28 01:44:00 | Re: Server-side support of all encodings |
Previous Message | Tom Lane | 2007-03-28 01:24:33 | Re: pg_index updates and SI invalidation |