Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6c2744f

Browse files
committed
Use memmove() instead of memcpy() for copying overlapping regions.
In commitd2495f2, I fixed this bug into_tsquery(), but missed the fact that plainto_tsquery() has the same bug.
1 parentdfb1e9b commit6c2744f

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

‎src/backend/tsearch/to_tsany.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
396396
if (query->size==0)
397397
PG_RETURN_TSQUERY(query);
398398

399+
/* clean out any stopword placeholders from the tree */
399400
res=clean_fakeval(GETQUERY(query),&len);
400401
if (!res)
401402
{
@@ -405,6 +406,10 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
405406
}
406407
memcpy((void*)GETQUERY(query), (void*)res,len*sizeof(QueryItem));
407408

409+
/*
410+
* Removing the stopword placeholders might've resulted in fewer
411+
* QueryItems. If so, move the operands up accordingly.
412+
*/
408413
if (len!=query->size)
409414
{
410415
char*oldoperand=GETOPERAND(query);
@@ -413,7 +418,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
413418
Assert(len<query->size);
414419

415420
query->size=len;
416-
memcpy((void*)GETOPERAND(query),oldoperand,lenoperand);
421+
memmove((void*)GETOPERAND(query),oldoperand,lenoperand);
417422
SET_VARSIZE(query,COMPUTESIZE(len,lenoperand));
418423
}
419424

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp