зеркало из https://github.com/github/ruby.git
etc.c: retry with allocated string buffer
* ext/etc/etc.c (etc_systmpdir): retry with allocated string buffer if static buffer size is not enough. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
0661411671
Коммит
c3262bceee
|
@ -664,9 +664,15 @@ etc_systmpdir(void)
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
tmpstr = path;
|
tmpstr = path;
|
||||||
tmplen = len - 1;
|
tmplen = len - 1;
|
||||||
|
if (len > sizeof(path)) tmpstr = 0;
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
tmpdir = rb_filesystem_str_new(tmpstr, tmplen);
|
tmpdir = rb_filesystem_str_new(tmpstr, tmplen);
|
||||||
|
# if defined _CS_DARWIN_USER_TEMP_DIR
|
||||||
|
if (!tmpstr) {
|
||||||
|
confstr(_CS_DARWIN_USER_TEMP_DIR, RSTRING_PTR(tmpdir), len);
|
||||||
|
}
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
FL_UNSET(tmpdir, FL_TAINT);
|
FL_UNSET(tmpdir, FL_TAINT);
|
||||||
return tmpdir;
|
return tmpdir;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче