diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-27 16:19:42 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-27 16:19:42 +0000 |
commit | 1d45168f4b4d21c33d7aaa23b8203e2a4a43545e (patch) | |
tree | e4c8097398ae5c987369490f4b354551191607d3 /src/tutorial/funcs.c | |
parent | 9ba40653129f0c538ac8d4f0488512a10819567f (diff) | |
download | postgresql-1d45168f4b4d21c33d7aaa23b8203e2a4a43545e.tar.gz postgresql-1d45168f4b4d21c33d7aaa23b8203e2a4a43545e.zip |
Fix some misuses of strncat().
Diffstat (limited to 'src/tutorial/funcs.c')
-rw-r--r-- | src/tutorial/funcs.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/tutorial/funcs.c b/src/tutorial/funcs.c index 2ac798f81b6..18f8467dddb 100644 --- a/src/tutorial/funcs.c +++ b/src/tutorial/funcs.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/tutorial/funcs.c,v 1.15 2006/05/31 20:58:09 tgl Exp $ */ +/* $PostgreSQL: pgsql/src/tutorial/funcs.c,v 1.16 2006/09/27 16:19:42 tgl Exp $ */ /****************************************************************************** These are user-defined functions that can be bound to a Postgres backend @@ -85,13 +85,14 @@ copytext(text *t) text * concat_text(text *arg1, text *arg2) { - int32 new_text_size = VARSIZE(arg1) + VARSIZE(arg2) - VARHDRSZ; + int32 arg1_size = VARSIZE(arg1) - VARHDRSZ; + int32 arg2_size = VARSIZE(arg2) - VARHDRSZ; + int32 new_text_size = arg1_size + arg2_size + VARHDRSZ; text *new_text = (text *) palloc(new_text_size); - memset((void *) new_text, 0, new_text_size); VARATT_SIZEP(new_text) = new_text_size; - strncpy(VARDATA(new_text), VARDATA(arg1), VARSIZE(arg1) - VARHDRSZ); - strncat(VARDATA(new_text), VARDATA(arg2), VARSIZE(arg2) - VARHDRSZ); + memcpy(VARDATA(new_text), VARDATA(arg1), arg1_size); + memcpy(VARDATA(new_text) + arg1_size, VARDATA(arg2), arg2_size); return new_text; } |