forked from OSchip/llvm-project
Improve the regerror(3) interceptor
The res returned value might differ with REAL(strlen)(errbuf) + 1, as the buffer's value is limited with errbuf_size. Hot fix for D54584. llvm-svn: 348231
This commit is contained in:
parent
b393a516fb
commit
9d62f4db78
|
@ -7398,8 +7398,8 @@ INTERCEPTOR(SIZE_T, regerror, int errcode, const void *preg, char *errbuf,
|
|||
if (preg)
|
||||
COMMON_INTERCEPTOR_READ_RANGE(ctx, preg, struct_regex_sz);
|
||||
SIZE_T res = REAL(regerror)(errcode, preg, errbuf, errbuf_size);
|
||||
if (errbuf && res > 0)
|
||||
COMMON_INTERCEPTOR_WRITE_RANGE(ctx, errbuf, res);
|
||||
if (errbuf)
|
||||
COMMON_INTERCEPTOR_WRITE_RANGE(ctx, errbuf, REAL(strlen)(errbuf) + 1);
|
||||
return res;
|
||||
}
|
||||
INTERCEPTOR(void, regfree, const void *preg) {
|
||||
|
|
Loading…
Reference in New Issue