aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/tsvector.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-03-07 13:13:33 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-03-07 13:43:28 +0200
commitff9d757c67786b389f19abc3187d158adda500d8 (patch)
tree0058725721e0c44f037f0c675b8bded5ca9ab382 /src/backend/utils/adt/tsvector.c
parentfb61ff85e16636e82fa6ad01f8e106b14b84844f (diff)
downloadpostgresql-ff9d757c67786b389f19abc3187d158adda500d8.tar.gz
postgresql-ff9d757c67786b389f19abc3187d158adda500d8.zip
Avoid memcpy() with same source and destination address.
The behavior of that is undefined, although unlikely to lead to problems in practice. Found by running regression tests with Valgrind.
Diffstat (limited to 'src/backend/utils/adt/tsvector.c')
-rw-r--r--src/backend/utils/adt/tsvector.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/utils/adt/tsvector.c b/src/backend/utils/adt/tsvector.c
index 397e6c780bf..0dbbc9368bf 100644
--- a/src/backend/utils/adt/tsvector.c
+++ b/src/backend/utils/adt/tsvector.c
@@ -125,7 +125,8 @@ uniqueentry(WordEntryIN *a, int l, char *buf, int *outbuflen)
buflen += res->poslen * sizeof(WordEntryPos) + sizeof(uint16);
}
res++;
- memcpy(res, ptr, sizeof(WordEntryIN));
+ if (res != ptr)
+ memcpy(res, ptr, sizeof(WordEntryIN));
}
else if (ptr->entry.haspos)
{