mirror of
https://repo.or.cz/socat.git
synced 2024-12-22 23:42:34 +00:00
unnamed unix domain socket could generate invalid log output or lead to a process crash
This commit is contained in:
parent
ab25a5199b
commit
1c13486bd6
2 changed files with 13 additions and 5 deletions
4
CHANGES
4
CHANGES
|
@ -53,6 +53,10 @@ corrections:
|
||||||
socat option -x did not print packet direction, timestamp etc; thanks
|
socat option -x did not print packet direction, timestamp etc; thanks
|
||||||
to Anthony Sharobaiko for sending a patch
|
to Anthony Sharobaiko for sending a patch
|
||||||
|
|
||||||
|
Marcus Meissner provided a patch that fixes invalid output and possible
|
||||||
|
process crash when socat prints info about an unnamed unix domain
|
||||||
|
socket
|
||||||
|
|
||||||
docu mentions option so-bindtodev but correct name is so-bindtodevice.
|
docu mentions option so-bindtodev but correct name is so-bindtodevice.
|
||||||
Thanks to Jim Zimmerman for reporting.
|
Thanks to Jim Zimmerman for reporting.
|
||||||
|
|
||||||
|
|
14
sysutils.c
14
sysutils.c
|
@ -1,5 +1,5 @@
|
||||||
/* source: sysutils.c */
|
/* source: sysutils.c */
|
||||||
/* Copyright Gerhard Rieger 2001-2008 */
|
/* Copyright Gerhard Rieger 2001-2012 */
|
||||||
/* Published under the GNU General Public License V.2, see file COPYING */
|
/* Published under the GNU General Public License V.2, see file COPYING */
|
||||||
|
|
||||||
/* translate socket addresses into human readable form */
|
/* translate socket addresses into human readable form */
|
||||||
|
@ -215,10 +215,14 @@ char *sockaddr_unix_info(const struct sockaddr_un *sa, socklen_t salen, char *bu
|
||||||
} else
|
} else
|
||||||
#endif /* WITH_ABSTRACT_UNIXSOCKET */
|
#endif /* WITH_ABSTRACT_UNIXSOCKET */
|
||||||
{
|
{
|
||||||
nextc =
|
if (salen <= XIOUNIXSOCKOVERHEAD) {
|
||||||
sanitize_string(sa->sun_path,
|
nextc = sanitize_string ("<anon>", MIN(UNIX_PATH_MAX, strlen("<anon>")),
|
||||||
MIN(UNIX_PATH_MAX, strlen(sa->sun_path)),
|
ubuff, XIOSAN_DEFAULT_BACKSLASH_OCT_3);
|
||||||
ubuff, XIOSAN_DEFAULT_BACKSLASH_OCT_3);
|
} else {
|
||||||
|
nextc = sanitize_string(sa->sun_path,
|
||||||
|
MIN(UNIX_PATH_MAX, strlen(sa->sun_path)),
|
||||||
|
ubuff, XIOSAN_DEFAULT_BACKSLASH_OCT_3);
|
||||||
|
}
|
||||||
*nextc = '\0';
|
*nextc = '\0';
|
||||||
strncpy(buff, ubuff, blen);
|
strncpy(buff, ubuff, blen);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue