Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Core
Tor
Commits
e07d08a1
Unverified
Commit
e07d08a1
authored
Aug 10, 2019
by
teor
Browse files
Merge remote-tracking branch 'tor-github/pr/1052' into maint-0.2.9
parents
e0f9a822
0e0cf4ab
Changes
2
Hide whitespace changes
Inline
Side-by-side
changes/bug30561
0 → 100644
View file @
e07d08a1
o Minor bugfixes (portability):
- Avoid crashing in our tor_vasprintf() implementation on systems that
define neither vasprintf() nor _vscprintf(). (This bug has been here
long enough that we question whether people are running Tor on such
systems, but we're applying the fix out of caution.) Fixes bug 30561;
bugfix on 0.2.8.2-alpha. Found and fixed by Tobias Stoeckmann.
src/common/compat.c
View file @
e07d08a1
...
...
@@ -554,14 +554,24 @@ tor_vasprintf(char **strp, const char *fmt, va_list args)
* characters we need. We give it a try on a short buffer first, since
* it might be nice to avoid the second vsnprintf call.
*/
/* XXXX This code spent a number of years broken (see bug 30651). It is
* possible that no Tor users actually run on systems without vasprintf() or
* _vscprintf(). If so, we should consider removing this code. */
char
buf
[
128
];
int
len
,
r
;
va_list
tmp_args
;
va_copy
(
tmp_args
,
args
);
/* vsnprintf() was properly checked but tor_vsnprintf() available so
* why not use it? */
len
=
tor_vsnprintf
(
buf
,
sizeof
(
buf
),
fmt
,
tmp_args
);
/* Use vsnprintf to retrieve needed length. tor_vsnprintf() is not an
* option here because it will simply return -1 if buf is not large enough
* to hold the complete string.
*/
len
=
vsnprintf
(
buf
,
sizeof
(
buf
),
fmt
,
tmp_args
);
va_end
(
tmp_args
);
buf
[
sizeof
(
buf
)
-
1
]
=
'\0'
;
if
(
len
<
0
)
{
*
strp
=
NULL
;
return
-
1
;
}
if
(
len
<
(
int
)
sizeof
(
buf
))
{
*
strp
=
tor_strdup
(
buf
);
return
len
;
...
...
@@ -3543,4 +3553,3 @@ tor_get_avail_disk_space(const char *path)
return
-
1
;
#endif
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment