diff options
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: misc.c,v 1.120 2017/12/05 23:59:47 dtucker Exp $ */ | 1 | /* $OpenBSD: misc.c,v 1.121 2017/12/08 02:13:02 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2005,2006 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2005,2006 Damien Miller. All rights reserved. |
@@ -1494,9 +1494,10 @@ unix_listener(const char *path, int backlog, int unlink_first) | |||
1494 | 1494 | ||
1495 | memset(&sunaddr, 0, sizeof(sunaddr)); | 1495 | memset(&sunaddr, 0, sizeof(sunaddr)); |
1496 | sunaddr.sun_family = AF_UNIX; | 1496 | sunaddr.sun_family = AF_UNIX; |
1497 | if (strlcpy(sunaddr.sun_path, path, sizeof(sunaddr.sun_path)) >= sizeof(sunaddr.sun_path)) { | 1497 | if (strlcpy(sunaddr.sun_path, path, |
1498 | error("%s: \"%s\" too long for Unix domain socket", __func__, | 1498 | sizeof(sunaddr.sun_path)) >= sizeof(sunaddr.sun_path)) { |
1499 | path); | 1499 | error("%s: path \"%s\" too long for Unix domain socket", |
1500 | __func__, path); | ||
1500 | errno = ENAMETOOLONG; | 1501 | errno = ENAMETOOLONG; |
1501 | return -1; | 1502 | return -1; |
1502 | } | 1503 | } |
@@ -1504,7 +1505,7 @@ unix_listener(const char *path, int backlog, int unlink_first) | |||
1504 | sock = socket(PF_UNIX, SOCK_STREAM, 0); | 1505 | sock = socket(PF_UNIX, SOCK_STREAM, 0); |
1505 | if (sock < 0) { | 1506 | if (sock < 0) { |
1506 | saved_errno = errno; | 1507 | saved_errno = errno; |
1507 | error("socket: %.100s", strerror(errno)); | 1508 | error("%s: socket: %.100s", __func__, strerror(errno)); |
1508 | errno = saved_errno; | 1509 | errno = saved_errno; |
1509 | return -1; | 1510 | return -1; |
1510 | } | 1511 | } |
@@ -1514,18 +1515,18 @@ unix_listener(const char *path, int backlog, int unlink_first) | |||
1514 | } | 1515 | } |
1515 | if (bind(sock, (struct sockaddr *)&sunaddr, sizeof(sunaddr)) < 0) { | 1516 | if (bind(sock, (struct sockaddr *)&sunaddr, sizeof(sunaddr)) < 0) { |
1516 | saved_errno = errno; | 1517 | saved_errno = errno; |
1517 | error("bind: %.100s", strerror(errno)); | ||
1518 | close(sock); | 1518 | close(sock); |
1519 | error("%s: cannot bind to path: %s", __func__, path); | 1519 | error("%s: cannot bind to path %s: %s", |
1520 | __func__, path, strerror(errno)); | ||
1520 | errno = saved_errno; | 1521 | errno = saved_errno; |
1521 | return -1; | 1522 | return -1; |
1522 | } | 1523 | } |
1523 | if (listen(sock, backlog) < 0) { | 1524 | if (listen(sock, backlog) < 0) { |
1524 | saved_errno = errno; | 1525 | saved_errno = errno; |
1525 | error("listen: %.100s", strerror(errno)); | ||
1526 | close(sock); | 1526 | close(sock); |
1527 | unlink(path); | 1527 | unlink(path); |
1528 | error("%s: cannot listen on path: %s", __func__, path); | 1528 | error("%s: cannot listen on path %s: %s", |
1529 | __func__, path, strerror(errno)); | ||
1529 | errno = saved_errno; | 1530 | errno = saved_errno; |
1530 | return -1; | 1531 | return -1; |
1531 | } | 1532 | } |