Hi,
This simple patch to catalog/pg_type.c fixes a buffer overrun.
It was detected by Electric Fence and triggered by statements like:

	SELECT * into table t from pg_database;

The system would crash on a memmove call in DataFile() with arguments like this:

	memmove(0x0, 0x0, 0); 

Here's the patch.

320a321
> 	NameData	 	name;
390c391,392
< 	values[i++] = PointerGetDatum(typeName);	/* 1 */
---
> 	namestrcpy(&name,typeName);
> 	values[i++] = NameGetDatum(&name);	/* 1 */

After applying the patch the problem goes away.

I'll try to make all the buffer overruns detected by Electric Fence
during the regression test on my Linux system go away -:).
Debugging is a nice way to learn about a system isn't it?

With regards from Maurice.


Sun, 29 Mar 1998 14:33:21 +0200
Maurice Gittens <mgittens@david.gits.nl>
found another overrun
Patch applied.

> 
> Hi,
> This simple patch to catalog/pg_type.c fixes a buffer overrun.
> It was detected by Electric Fence and triggered by statements like:
> 
> 	SELECT * into table t from pg_database;
> 
> The system would crash on a memmove call in DataFile() with arguments like this:
> 
> 	memmove(0x0, 0x0, 0); 
> 
> Here's the patch.
> 
> 320a321
> > 	NameData	 	name;
> 390c391,392
> < 	values[i++] = PointerGetDatum(typeName);	/* 1 */
> ---
> > 	namestrcpy(&name,typeName);
> > 	values[i++] = NameGetDatum(&name);	/* 1 */
> 
> After applying the patch the problem goes away.
> 
> I'll try to make all the buffer overruns detected by Electric Fence
> during the regression test on my Linux system go away -:).
> Debugging is a nice way to learn about a system isn't it?
> 
> With regards from Maurice.
> 
> 
> 


-- 
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)

Mon, 30 Mar 1998 12:45:38 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] found another overrun