{
const struct sockaddr_un *const sa_un = buf;
- if (addrlen == 2) {
- tprints("NULL");
- } else if (sa_un->sun_path[0]) {
- tprints("sun_path=");
+ tprints("sun_path=");
+ if (sa_un->sun_path[0]) {
print_quoted_string(sa_un->sun_path,
sizeof(sa_un->sun_path) + 1,
QUOTE_0_TERMINATED);
} else {
- tprints("sun_path=@");
+ tprints("@");
print_quoted_string(sa_un->sun_path + 1,
sizeof(sa_un->sun_path),
QUOTE_0_TERMINATED);
print_sockaddr(struct tcb *tcp, const void *const buf, const int addrlen)
{
const struct sockaddr *const sa = buf;
- const unsigned short family = sa->sa_family;
tprints("{sa_family=");
- printxval(addrfams, family, "AF_???");
- tprints(", ");
+ printxval(addrfams, sa->sa_family, "AF_???");
- if (family < ARRAY_SIZE(sa_printers) && sa_printers[family]) {
- sa_printers[family](buf, addrlen);
- } else {
- tprints("sa_data=");
- print_quoted_string(sa->sa_data, sizeof(sa->sa_data), 0);
+ if (addrlen > (int) sizeof(sa->sa_family)) {
+ tprints(", ");
+
+ if (sa->sa_family < ARRAY_SIZE(sa_printers)
+ && sa_printers[sa->sa_family]) {
+ sa_printers[sa->sa_family](buf, addrlen);
+ } else {
+ tprints("sa_data=");
+ print_quoted_string(sa->sa_data, sizeof(sa->sa_data), 0);
+ }
}
tprints("}");
if (accept_fd < 0)
perror_msg_and_fail("accept");
unsigned long accept_inode = inode_of_sockfd(accept_fd);
- printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX, NULL}"
+ printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX}"
", [%u]) = %d<socket:[%lu]>\n",
listen_fd, listen_inode, (unsigned) *len,
accept_fd, accept_inode);
if (accept_fd < 0)
perror_msg_and_fail("accept");
unsigned long accept_inode = inode_of_sockfd(accept_fd);
- printf("accept(%d<UNIX:[%lu,\"%s\"]>, {sa_family=AF_UNIX, NULL}"
+ printf("accept(%d<UNIX:[%lu,\"%s\"]>, {sa_family=AF_UNIX}"
", [%u]) = %d<UNIX:[%lu->%lu,\"%s\"]>\n",
listen_fd, listen_inode, av[1], (unsigned) *len,
accept_fd, accept_inode, connect_inode, av[1]);
[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +bind\(0, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="net-local-stream"\}, 19\) += 0
[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +listen\(0, 5\) += 0
[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +getsockname\(0, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="net-local-stream"\}, \[19\]\) += 0
-[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +accept\(0, \{sa_family=AF_(LOCAL|UNIX|FILE), NULL\}, \[2\]\) += 1
+[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +accept\(0, \{sa_family=AF_(LOCAL|UNIX|FILE)\}, \[2\]\) += 1
[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +connect\(1, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="net-local-stream"\}, 19\) += 0