Fix unsafe extraction of the OID part of a relation filename.
Commit 8694cc96b did this randomly differently from other callers of parse_filename_for_nontemp_relation(). Perhaps unsurprisingly, the randomly different way is wrong; it fails to ensure the extracted string is null-terminated. Per buildfarm member skink. Discussion: https://postgr.es/m/14453.1522001792@sss.pgh.pa.us
This commit is contained in:
parent
bf4a8676c3
commit
d0c0c89453
@ -1056,7 +1056,8 @@ sendDir(const char *path, int basepathlen, bool sizeonly, List *tablespaces,
|
|||||||
* If any other type of fork, check if there is an init fork
|
* If any other type of fork, check if there is an init fork
|
||||||
* with the same OID. If so, the file can be excluded.
|
* with the same OID. If so, the file can be excluded.
|
||||||
*/
|
*/
|
||||||
strncpy(relOid, de->d_name, relOidChars);
|
memcpy(relOid, de->d_name, relOidChars);
|
||||||
|
relOid[relOidChars] = '\0';
|
||||||
snprintf(initForkFile, sizeof(initForkFile), "%s/%s_init",
|
snprintf(initForkFile, sizeof(initForkFile), "%s/%s_init",
|
||||||
path, relOid);
|
path, relOid);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user