summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/socket.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/socket.c b/lib/socket.c
index db77188..c91898a 100644
--- a/lib/socket.c
+++ b/lib/socket.c
@@ -306,13 +306,16 @@ hwaddr_to_uv(uint8_t *addr, size_t alen)
char buf[sizeof("FF:FF:FF:FF:FF:FF:FF:FF")], *p = buf;
const char *hex = "0123456789ABCDEF";
- for (size_t i = 0; i < alen && i < 8; i++) {
+ if (alen > 8)
+ alen = 8;
+
+ for (size_t i = 0; i < alen; i++) {
if (i) *p++ = ':';
*p++ = hex[addr[i] / 16];
*p++ = hex[addr[i] % 16];
}
- return ucv_string_new(buf);
+ return ucv_string_new_length(buf, alen);
}
static bool
@@ -3920,10 +3923,6 @@ uc_socket_inst_recvmsg(uc_vm_t *vm, size_t nargs)
flagval = flags ? ucv_int64_get(flags) : 0;
-#if defined(__linux__)
- flagval |= MSG_CMSG_CLOEXEC;
-#endif
-
/* prepare ancillary data buffer */
if (anclength) {
size_t sz = ucv_to_unsigned(anclength);