Hello community, here is the log from the commit of package hyper-v for openSUSE:Factory checked in at 2015-01-30 06:03:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyper-v (Old) and /work/SRC/openSUSE:Factory/.hyper-v.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyper-v" Changes: -------- --- /work/SRC/openSUSE:Factory/hyper-v/hyper-v.changes 2014-12-19 09:36:55.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.hyper-v.new/hyper-v.changes 2015-01-30 06:03:10.000000000 +0100 @@ -1,0 +2,9 @@ +Mon Jan 12 09:37:40 UTC 2015 - [email protected] + +- Check return value of setsockopt call +- Improve error logging in VSS daemon. +- Check return value of poll call +- Properly pack the data for file copy functionality +- make struct hv_do_fcopy match Hyper-V host messages + +------------------------------------------------------------------- @@ -12 +21 @@ -- introduce -n/--no-daemon option (fate#317317533) +- introduce -n/--no-daemon option (fate#317533) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyper-v.spec ++++++ --- /var/tmp/diff_new_pack.Ogtjhg/_old 2015-01-30 06:03:12.000000000 +0100 +++ /var/tmp/diff_new_pack.Ogtjhg/_new 2015-01-30 06:03:12.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package hyper-v # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed ++++++ hyper-v.include.linux.hyperv.h ++++++ --- /var/tmp/diff_new_pack.Ogtjhg/_old 2015-01-30 06:03:12.000000000 +0100 +++ /var/tmp/diff_new_pack.Ogtjhg/_new 2015-01-30 06:03:12.000000000 +0100 @@ -128,10 +128,11 @@ struct hv_do_fcopy { struct hv_fcopy_hdr hdr; + __u32 pad; __u64 offset; __u32 size; __u8 data[DATA_FRAGMENT]; -}; +} __attribute__((packed)); /* ++++++ hyper-v.tools.hv.hv_fcopy_daemon.c ++++++ --- /var/tmp/diff_new_pack.Ogtjhg/_old 2015-01-30 06:03:12.000000000 +0100 +++ /var/tmp/diff_new_pack.Ogtjhg/_new 2015-01-30 06:03:12.000000000 +0100 @@ -174,7 +174,7 @@ fcopy_fd = open("/dev/vmbus/hv_fcopy", O_RDWR); if (fcopy_fd < 0) { - syslog(LOG_ERR, "open /dev/hv_fcopy failed; error: %d %s", + syslog(LOG_ERR, "open /dev/vmbus/hv_fcopy failed; error: %d %s", errno, strerror(errno)); exit(EXIT_FAILURE); } ++++++ hyper-v.tools.hv.hv_kvp_daemon.c ++++++ --- /var/tmp/diff_new_pack.Ogtjhg/_old 2015-01-30 06:03:12.000000000 +0100 +++ /var/tmp/diff_new_pack.Ogtjhg/_new 2015-01-30 06:03:12.000000000 +0100 @@ -1485,7 +1485,7 @@ kvp_get_os_info(); /* * Cache Fully Qualified Domain Name because getaddrinfo takes an - * unpredicatable amount of time to finish. + * unpredictable amount of time to finish. */ kvp_get_domain_name(full_domain_name, sizeof(full_domain_name)); ++++++ hyper-v.tools.hv.hv_vss_daemon.c ++++++ --- /var/tmp/diff_new_pack.Ogtjhg/_old 2015-01-30 06:03:12.000000000 +0100 +++ /var/tmp/diff_new_pack.Ogtjhg/_new 2015-01-30 06:03:12.000000000 +0100 @@ -221,7 +221,8 @@ fd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR); if (fd < 0) { - syslog(LOG_ERR, "netlink socket creation failed; error:%d", fd); + syslog(LOG_ERR, "netlink socket creation failed; error:%d %s", + errno, strerror(errno)); exit(EXIT_FAILURE); } addr.nl_family = AF_NETLINK; @@ -232,12 +233,16 @@ error = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (error < 0) { - syslog(LOG_ERR, "bind failed; error:%d", error); + syslog(LOG_ERR, "bind failed; error:%d %s", errno, strerror(errno)); close(fd); exit(EXIT_FAILURE); } nl_group = CN_VSS_IDX; - setsockopt(fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP, &nl_group, sizeof(nl_group)); + if (setsockopt(fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP, &nl_group, sizeof(nl_group)) < 0) { + syslog(LOG_ERR, "setsockopt failed; error:%d %s", errno, strerror(errno)); + close(fd); + exit(EXIT_FAILURE); + } /* * Register ourselves with the kernel. */ @@ -252,7 +257,7 @@ len = netlink_send(fd, message); if (len < 0) { - syslog(LOG_ERR, "netlink_send failed; error:%d", len); + syslog(LOG_ERR, "netlink_send failed; error:%d %s", errno, strerror(errno)); close(fd); exit(EXIT_FAILURE); } @@ -264,7 +269,16 @@ socklen_t addr_l = sizeof(addr); pfd.events = POLLIN; pfd.revents = 0; - poll(&pfd, 1, -1); + + if (poll(&pfd, 1, -1) < 0) { + syslog(LOG_ERR, "poll failed; error:%d %s", errno, strerror(errno)); + if (errno == EINVAL) { + close(fd); + exit(EXIT_FAILURE); + } + else + continue; + } len = recvfrom(fd, vss_recv_buffer, vss_recv_buffer_len, 0, addr_p, &addr_l); @@ -314,7 +328,8 @@ vss_msg->error = error; len = netlink_send(fd, incoming_cn_msg); if (len < 0) { - syslog(LOG_ERR, "net_link send failed; error:%d", len); + syslog(LOG_ERR, "net_link send failed; error:%d %s", + errno, strerror(errno)); exit(EXIT_FAILURE); } } -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
