Hello community, here is the log from the commit of package open-iscsi for openSUSE:Factory checked in at 2020-08-02 12:27:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/open-iscsi (Old) and /work/SRC/openSUSE:Factory/.open-iscsi.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "open-iscsi" Sun Aug 2 12:27:47 2020 rev:97 rq:823425 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/open-iscsi/open-iscsi.changes 2020-06-11 14:45:03.749445513 +0200 +++ /work/SRC/openSUSE:Factory/.open-iscsi.new.3592/open-iscsi.changes 2020-08-02 12:29:16.819914016 +0200 @@ -1,0 +2,34 @@ +Sat Jul 25 01:05:13 UTC 2020 - Lee Duncan <ldun...@suse.com> + +- Upgrade to upstream vresion 2.1.2 as 2.1.2-suse (for + jre#SES-1081), including: + * use openssl for random data generation + * Misspelled socket name might cause confusion to inexperienced user. + * iscsi/libopeniscsiusr:add libopeniscsiuser_node.h to HEADERS + * Let initiator name be created by iscsi-init.service. + * iscsi: fix fd leak + * iscsi: Add break to while loop + * Fix compiler complaint about string copy in iscsiuio + * Fix a compiler complaint about writing one byte + * Fix issue with zero-length arrays at end of struct + * Add iscsi-init.service + * Proper disconnect of TCP connection + * Fix dependency on new systemd RPM macro + * Fix SIGPIPE loop in signal handler + * Update iscsi-iname.c + * log:modify iSCSI shared memory permissions for logs + * Sequence systemd services correctly when upgrading + * Ignore iface.example in iface match checks + * More changes for musl. + * Fix type mismatch under musl. + * Change include of <sys/poll.h> to <poll.h> + * Add Wants=remote-fs-pre.target for sequencing. + * Add workaround in SPEC file for installcheck. + * Fix issue where "iscsi-iname -p" core dumps. + * iscsi-iname: fix iscsi-iname -p access NULL pointer without given IQN prefix + * Fix iscsi.service so it handles restarts better + Replacing open-iscsi-2.1.1-suse.tar.bz2 with open-iscsi-2.1.2-suse.tar.bz2, + and updating open-iscsi-SUSE-latest.diff.bz2 to empty, since initially + there are no differences. + +------------------------------------------------------------------- Old: ---- open-iscsi-2.1.1-suse.tar.bz2 New: ---- open-iscsi-2.1.2-suse.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ open-iscsi.spec ++++++ --- /var/tmp/diff_new_pack.hzjeER/_old 2020-08-02 12:29:19.479916751 +0200 +++ /var/tmp/diff_new_pack.hzjeER/_new 2020-08-02 12:29:19.479916751 +0200 @@ -17,10 +17,10 @@ %define iscsi_minor_release 1 -%define iscsi_patch_release 1 +%define iscsi_patch_release 2 %define iscsi_patch_release_suse %{iscsi_patch_release}-suse Name: open-iscsi -Version: 2.1.1 +Version: 2.1.2 Release: 0 Summary: Linux iSCSI Software Initiator License: GPL-2.0-or-later ++++++ open-iscsi-2.1.1-suse.tar.bz2 -> open-iscsi-2.1.2-suse.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/Changelog new/open-iscsi-2.1.2-suse/Changelog --- old/open-iscsi-2.1.1-suse/Changelog 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/Changelog 2020-07-27 18:09:11.000000000 +0200 @@ -1,3 +1,46 @@ +open-iscsi-2.1.0 - open-iscsi-2.1.2 + +Christian Glombek (1): + Add iscsi-init.service + +David Disseldorp (2): + use openssl for random data generation + drop unused get_random_bytes() + +Lee Duncan (10): + Fix iscsi.service so it handles restarts better + Fix issue where "iscsi-iname -p" core dumps. + Add Wants=remote-fs-pre.target for sequencing. + Change include of <sys/poll.h> to <poll.h> + Fix type mismatch under musl. + More changes for musl. + Ignore iface.example in iface match checks + Fix issue with zero-length arrays at end of struct + Fix a compiler complaint about writing one byte + Fix compiler complaint about string copy in iscsiuio + +Luis.wu (1): + Update iscsi-iname.c + +Rafael David Tinoco (1): + Misspelled socket name might cause confusion to inexperienced user. + +Wu Bo (2): + iscsi-iname: fix iscsi-iname -p access NULL pointer without given IQN prefix + log:modify iSCSI shared memory permissions for logs + +fredvx (1): + Fix SIGPIPE loop in signal handler + +gulams (1): + Proper disconnect of TCP connection + +wubo009 (3): + iscsi: Add break to while loop + iscsi: fix fd leak + iscsi/libopeniscsiusr:add libopeniscsiuser_node.h to HEADERS + + open-iscsi-2.1.0 - open-iscsi-2.1.1 # output from "git shortlog --no-merges 2.1.0..HEAD" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/Makefile new/open-iscsi-2.1.2-suse/Makefile --- old/open-iscsi-2.1.1-suse/Makefile 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/Makefile 2020-07-27 18:09:11.000000000 +0200 @@ -30,6 +30,7 @@ RULESFILES = utils/50-iscsi-firmware-login.rules SYSTEMDFILES = etc/systemd/iscsi.service \ etc/systemd/iscsid.service etc/systemd/iscsid.socket \ + etc/systemd/iscsi-init.service \ etc/systemd/iscsiuio.service etc/systemd/iscsiuio.socket export DESTDIR prefix INSTALL @@ -107,7 +108,7 @@ install_udev_rules install_user: install_programs install_doc install_etc \ - install_initd install_iname install_iface install_udev_rules \ + install_initd install_iface install_udev_rules \ install_libopeniscsiusr install_udev_rules: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/etc/iscsid.conf new/open-iscsi-2.1.2-suse/etc/iscsid.conf --- old/open-iscsi-2.1.1-suse/etc/iscsid.conf 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/etc/iscsid.conf 2020-07-27 18:09:11.000000000 +0200 @@ -19,8 +19,8 @@ # the time then leave this attribute commented out. # # Default for Fedora and RHEL. (uncomment to activate). -# iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.soccket -# +# iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket +# # Default if you are not using systemd (uncomment to activate) # iscsid.startup = /usr/bin/service start iscsid diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/etc/systemd/iscsi-init.service new/open-iscsi-2.1.2-suse/etc/systemd/iscsi-init.service --- old/open-iscsi-2.1.1-suse/etc/systemd/iscsi-init.service 1970-01-01 01:00:00.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/etc/systemd/iscsi-init.service 2020-07-27 18:09:11.000000000 +0200 @@ -0,0 +1,8 @@ +[Unit] +Description=One time configuration for iscsid.service +ConditionPathExists=!/etc/iscsi/initiatorname.iscsi + +[Service] +Type=oneshot +RemainAfterExit=no +ExecStart=/sbin/iscsi-gen-initiatorname diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/etc/systemd/iscsi.service new/open-iscsi-2.1.2-suse/etc/systemd/iscsi.service --- old/open-iscsi-2.1.1-suse/etc/systemd/iscsi.service 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/etc/systemd/iscsi.service 2020-07-27 18:09:11.000000000 +0200 @@ -3,15 +3,14 @@ Documentation=man:iscsiadm(8) man:iscsid(8) Before=remote-fs.target After=network.target network-online.target iscsid.service -Requires=iscsid.service -ConditionPathExists=/etc/iscsi/initiatorname.iscsi +Requires=iscsid.socket iscsi-init.service [Service] Type=oneshot ExecStart=/sbin/iscsiadm -m node --loginall=automatic ExecStop=/sbin/iscsiadm -m node --logoutall=automatic ExecStop=/sbin/iscsiadm -m node --logoutall=manual -SuccessExitStatus=21 +SuccessExitStatus=21 15 RemainAfterExit=true [Install] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/etc/systemd/iscsid.service new/open-iscsi-2.1.2-suse/etc/systemd/iscsid.service --- old/open-iscsi-2.1.1-suse/etc/systemd/iscsid.service 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/etc/systemd/iscsid.service 2020-07-27 18:09:11.000000000 +0200 @@ -2,8 +2,10 @@ Description=Open-iSCSI Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) DefaultDependencies=no -After=network.target iscsiuio.service +After=network.target iscsiuio.service iscsi-init.service Before=remote-fs-pre.target +Wants=remote-fs-pre.target +Requires=iscsi-init.service [Service] Type=notify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/etc/systemd/iscsiuio.service new/open-iscsi-2.1.2-suse/etc/systemd/iscsiuio.service --- old/open-iscsi-2.1.1-suse/etc/systemd/iscsiuio.service 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/etc/systemd/iscsiuio.service 2020-07-27 18:09:11.000000000 +0200 @@ -7,6 +7,7 @@ BindTo=iscsid.service After=network.target Before=remote-fs-pre.target iscsid.service +Wants=remote-fs-pre.target [Service] Type=notify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/include/iscsi_if.h new/open-iscsi-2.1.2-suse/include/iscsi_if.h --- old/open-iscsi-2.1.1-suse/include/iscsi_if.h 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/include/iscsi_if.h 2020-07-27 18:09:11.000000000 +0200 @@ -841,7 +841,7 @@ * up to ISCSI_STATS_CUSTOM_MAX */ uint32_t custom_length; - struct iscsi_stats_custom custom[0] + struct iscsi_stats_custom custom[] __attribute__ ((aligned (sizeof(uint64_t)))); }; @@ -972,7 +972,7 @@ * up to ISCSI_HOST_STATS_CUSTOM_MAX */ uint32_t custom_length; - struct iscsi_host_stats_custom custom[0] + struct iscsi_host_stats_custom custom[] __attribute__ ((aligned (sizeof(uint64_t)))); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/iscsiuio/src/uip/ipv6.c new/open-iscsi-2.1.2-suse/iscsiuio/src/uip/ipv6.c --- old/open-iscsi-2.1.1-suse/iscsiuio/src/uip/ipv6.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/iscsiuio/src/uip/ipv6.c 2020-07-27 18:09:11.000000000 +0200 @@ -519,7 +519,7 @@ * SRC IP, DST IP, Protocol Data Length, and Next Header. */ sum = 0; - ptr = (u16_t *)&ipv6->ipv6_src; + ptr = (u16_t *)&ipv6->ipv6_src.addr16[0]; for (i = 0; i < sizeof(struct ipv6_addr); i++) { sum += HOST_TO_NET16(*ptr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/iscsiuio/src/unix/nic_nl.c new/open-iscsi-2.1.2-suse/iscsiuio/src/unix/nic_nl.c --- old/open-iscsi-2.1.1-suse/iscsiuio/src/unix/nic_nl.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/iscsiuio/src/unix/nic_nl.c 2020-07-27 18:09:11.000000000 +0200 @@ -50,7 +50,7 @@ #include <linux/netlink.h> #include <iscsi_if.h> #include <sys/ioctl.h> -#include <sys/poll.h> +#include <poll.h> #include <sys/types.h> #include <sys/user.h> #include <sys/socket.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/iscsiuio/src/unix/nic_utils.c new/open-iscsi-2.1.2-suse/iscsiuio/src/unix/nic_utils.c --- old/open-iscsi-2.1.1-suse/iscsiuio/src/unix/nic_utils.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/iscsiuio/src/unix/nic_utils.c 2020-07-27 18:09:11.000000000 +0200 @@ -603,7 +603,10 @@ search_filters[path_iterator], alphasort); switch (count) { - case 1: + case 1: { + char *parsed_src; + size_t parsed_size; + parsed_name = (*extract_name[path_iterator]) (files); if (!parsed_name) { LOG_WARN(PFX "Couldn't find delimiter in: %s", @@ -612,15 +615,22 @@ break; } - strncpy(name, - parsed_name + - extract_name_offset[path_iterator], name_size); + parsed_src = parsed_name + extract_name_offset[path_iterator]; + parsed_size = strlen(parsed_src); + if (parsed_size >= name_size) { + LOG_WARN(PFX "uio device name too long: %s (max %d)", + parsed_src, (int)name_size - 1); + rc = -EINVAL; + } else { + strncpy(name, parsed_src, name_size); + rc = 0; + } free(files[0]); free(files); - rc = 0; break; + } case 0: rc = -EINVAL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/libopeniscsiusr/Makefile new/open-iscsi-2.1.2-suse/libopeniscsiusr/Makefile --- old/open-iscsi-2.1.1-suse/libopeniscsiusr/Makefile 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/libopeniscsiusr/Makefile 2020-07-27 18:09:11.000000000 +0200 @@ -38,7 +38,8 @@ HEADERS = libopeniscsiusr/libopeniscsiusr.h \ libopeniscsiusr/libopeniscsiusr_common.h \ libopeniscsiusr/libopeniscsiusr_session.h \ - libopeniscsiusr/libopeniscsiusr_iface.h + libopeniscsiusr/libopeniscsiusr_iface.h \ + libopeniscsiusr/libopeniscsiusr_node.h TESTS = tests/test_context tests/test_session tests/test_iface tests/test_node EXTRA_MAN_FILES = libopeniscsiusr.h.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/libopeniscsiusr/version.h new/open-iscsi-2.1.2-suse/libopeniscsiusr/version.h --- old/open-iscsi-2.1.1-suse/libopeniscsiusr/version.h 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/libopeniscsiusr/version.h 2020-07-27 18:09:11.000000000 +0200 @@ -25,6 +25,6 @@ * This may not be the same value as the kernel versions because * some other maintainer could merge a patch without going through us */ -#define ISCSI_VERSION_STR "2.1.1-suse" +#define ISCSI_VERSION_STR "2.1.2-suse" #endif /* End of __ISCSI_OPEN_USR_VERSION_H__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/auth.c new/open-iscsi-2.1.2-suse/usr/auth.c --- old/open-iscsi-2.1.1-suse/usr/auth.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/auth.c 2020-07-27 18:09:11.000000000 +0200 @@ -43,11 +43,11 @@ static const char acl_reject_option_name[] = "Reject"; #include <openssl/evp.h> +#include <openssl/rand.h> static int auth_hash_init(EVP_MD_CTX **context, int chap_alg); static void auth_hash_update(EVP_MD_CTX *context, unsigned char *md, unsigned int); static unsigned int auth_hash_final(unsigned char *, EVP_MD_CTX *context); -void get_random_bytes(unsigned char *data, unsigned int length); size_t strlcpy(char *, const char *, size_t); size_t strlcat(char *, const char *, size_t); @@ -217,42 +217,6 @@ return md_len; } -void -get_random_bytes(unsigned char *data, unsigned int length) -{ - - long r; - unsigned n; - int fd, r_size = sizeof(r); - - fd = open("/dev/urandom", O_RDONLY); - while (length > 0) { - - if (fd == -1 || read(fd, &r, r_size) != r_size) - r = rand(); - r = r ^ (r >> 8); - r = r ^ (r >> 4); - n = r & 0x7; - - if (fd == -1 || read(fd, &r, r_size) != r_size) - r = rand(); - r = r ^ (r >> 8); - r = r ^ (r >> 5); - n = (n << 3) | (r & 0x7); - - if (fd == -1 || read(fd, &r, r_size) != r_size) - r = rand(); - r = r ^ (r >> 8); - r = r ^ (r >> 5); - n = (n << 2) | (r & 0x3); - - *data++ = n; - length--; - } - if (fd) - close(fd); -} - static const char acl_none_option_name[] = "None"; static int @@ -1008,6 +972,7 @@ enum auth_dbg_status dbg_status; const char *chap_rsp_key_val; const char *chap_username_key_val; + int ssl_ret = 0; switch (client->rmt_state) { case AUTH_RMT_STATE_SEND_ALG: @@ -1023,7 +988,13 @@ client->rmt_state = AUTH_RMT_STATE_DONE; break; } - get_random_bytes(id_data, 1); + + ssl_ret = RAND_bytes(id_data, sizeof(id_data)); + if (ssl_ret != 1) { + client->rmt_state = AUTH_RMT_STATE_ERROR; + client->dbg_status = AUTH_DBG_STATUS_AUTH_FAIL; + break; + } client->send_chap_identifier = id_data[0]; snprintf(client->scratch_key_value, AUTH_STR_MAX_LEN, "%lu", (unsigned long)client->send_chap_identifier); @@ -1032,8 +1003,13 @@ client->scratch_key_value); client->send_chap_challenge.length = client->chap_challenge_len; - get_random_bytes(client->send_chap_challenge.large_binary, - client->send_chap_challenge.length); + ssl_ret = RAND_bytes(client->send_chap_challenge.large_binary, + client->send_chap_challenge.length); + if (ssl_ret != 1) { + client->rmt_state = AUTH_RMT_STATE_ERROR; + client->dbg_status = AUTH_DBG_STATUS_AUTH_FAIL; + break; + } acl_set_key_value(&client->send_key_block, AUTH_KEY_TYPE_CHAP_CHALLENGE, ""); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/discovery.c new/open-iscsi-2.1.2-suse/usr/discovery.c --- old/open-iscsi-2.1.1-suse/usr/discovery.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/discovery.c 2020-07-27 18:09:11.000000000 +0200 @@ -25,7 +25,7 @@ #include <stdint.h> #include <stdlib.h> #include <string.h> -#include <sys/poll.h> +#include <poll.h> #include <sys/time.h> #include <sys/param.h> #include <sys/socket.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/event_poll.c new/open-iscsi-2.1.2-suse/usr/event_poll.c --- old/open-iscsi-2.1.1-suse/usr/event_poll.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/event_poll.c 2020-07-27 18:09:11.000000000 +0200 @@ -23,7 +23,7 @@ */ #include <stdlib.h> #include <errno.h> -#include <sys/poll.h> +#include <poll.h> #include <sys/types.h> #include <sys/wait.h> #include <sys/signalfd.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/iface.c new/open-iscsi-2.1.2-suse/usr/iface.c --- old/open-iscsi-2.1.1-suse/usr/iface.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/iface.c 2020-07-27 18:09:11.000000000 +0200 @@ -905,6 +905,9 @@ !strcmp(iface_dent->d_name, "..")) continue; + if (!strcmp(iface_dent->d_name, "iface.example")) + continue; + log_debug(5, "iface_for_each_iface found %s", iface_dent->d_name); iface = iface_alloc(iface_dent->d_name, &err); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/initiator.c new/open-iscsi-2.1.2-suse/usr/initiator.c --- old/open-iscsi-2.1.1-suse/usr/initiator.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/initiator.c 2020-07-27 18:09:11.000000000 +0200 @@ -711,11 +711,7 @@ !iscsi_retry_initial_login(conn)) session_conn_shutdown(conn, qtask, err); else { - session->reopen_cnt++; - session->t->template->ep_disconnect(conn); - if (iscsi_conn_connect(conn, qtask)) - queue_delayed_reopen(qtask, - ISCSI_CONN_ERR_REOPEN_DELAY); + session_conn_reopen(conn, qtask, STOP_CONN_TERM); } break; case R_STAGE_SESSION_REDIRECT: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/io.c new/open-iscsi-2.1.2-suse/usr/io.c --- old/open-iscsi-2.1.1-suse/usr/io.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/io.c 2020-07-27 18:09:11.000000000 +0200 @@ -24,7 +24,7 @@ #include <signal.h> #include <unistd.h> #include <fcntl.h> -#include <sys/poll.h> +#include <poll.h> #include <sys/ioctl.h> #include <netinet/tcp.h> #include <arpa/inet.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/iscsi_util.c new/open-iscsi-2.1.2-suse/usr/iscsi_util.c --- old/open-iscsi-2.1.1-suse/usr/iscsi_util.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/iscsi_util.c 2020-07-27 18:09:11.000000000 +0200 @@ -152,7 +152,9 @@ log_debug(1, "Could not get file limit (err %d)", errno); return errno; } - log_debug(1, "Max file limits %lu %lu", rl.rlim_cur, rl.rlim_max); + log_debug(1, "Max file limits %lu %lu", + (long unsigned)rl.rlim_cur, + (long unsigned)rl.rlim_max); if (rl.rlim_cur < ISCSI_MAX_FILES) rl.rlim_cur = ISCSI_MAX_FILES; @@ -162,7 +164,8 @@ err = setrlimit(RLIMIT_NOFILE, &rl); if (err) { log_debug(1, "Could not set file limit to %lu/%lu (err %d)", - rl.rlim_cur, rl.rlim_max, errno); + (long unsigned)rl.rlim_cur, + (long unsigned)rl.rlim_max, errno); return errno; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/iscsid.c new/open-iscsi-2.1.2-suse/usr/iscsid.c --- old/open-iscsi-2.1.1-suse/usr/iscsid.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/iscsid.c 2020-07-27 18:09:11.000000000 +0200 @@ -310,7 +310,12 @@ static void catch_signal(int signo) { - log_debug(1, "pid %d caught signal %d", getpid(), signo); + /* + * Do not try to call log_debug() if there is a PIPE error + * because we can get caught in a PIPE error loop. + */ + if (signo != SIGPIPE) + log_debug(1, "pid %d caught signal %d", getpid(), signo); /* In foreground mode, treat SIGINT like SIGTERM */ if (!daemonize && signo == SIGINT) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/iscsistart.c new/open-iscsi-2.1.2-suse/usr/iscsistart.c --- old/open-iscsi-2.1.1-suse/usr/iscsistart.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/iscsistart.c 2020-07-27 18:09:11.000000000 +0200 @@ -30,7 +30,6 @@ #include <time.h> #include <sys/mman.h> #include <sys/utsname.h> -#include <sys/signal.h> #include <sys/types.h> #include <sys/wait.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/log.c new/open-iscsi-2.1.2-suse/usr/log.c --- old/open-iscsi-2.1.1-suse/usr/log.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/log.c 2020-07-27 18:09:11.000000000 +0200 @@ -73,7 +73,7 @@ logdbg(stderr,"enter logarea_init\n"); if ((shmid = shmget(IPC_PRIVATE, sizeof(struct logarea), - 0644 | IPC_CREAT | IPC_EXCL)) == -1) { + 0600 | IPC_CREAT | IPC_EXCL)) == -1) { syslog(LOG_ERR, "shmget logarea failed %d", errno); return 1; } @@ -93,7 +93,7 @@ size = DEFAULT_AREA_SIZE; if ((shmid = shmget(IPC_PRIVATE, size, - 0644 | IPC_CREAT | IPC_EXCL)) == -1) { + 0600 | IPC_CREAT | IPC_EXCL)) == -1) { syslog(LOG_ERR, "shmget msg failed %d", errno); free_logarea(); return 1; @@ -114,7 +114,7 @@ la->tail = la->start; if ((shmid = shmget(IPC_PRIVATE, MAX_MSG_SIZE + sizeof(struct logmsg), - 0644 | IPC_CREAT | IPC_EXCL)) == -1) { + 0600 | IPC_CREAT | IPC_EXCL)) == -1) { syslog(LOG_ERR, "shmget logmsg failed %d", errno); free_logarea(); return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/mgmt_ipc.c new/open-iscsi-2.1.2-suse/usr/mgmt_ipc.c --- old/open-iscsi-2.1.1-suse/usr/mgmt_ipc.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/mgmt_ipc.c 2020-07-27 18:09:11.000000000 +0200 @@ -26,6 +26,7 @@ #include <unistd.h> #include <pwd.h> #include <sys/un.h> +#include <string.h> #include "iscsid.h" #include "idbm.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/netlink.c new/open-iscsi-2.1.2-suse/usr/netlink.c --- old/open-iscsi-2.1.1-suse/usr/netlink.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/netlink.c 2020-07-27 18:09:11.000000000 +0200 @@ -30,7 +30,7 @@ #include <asm/types.h> #include <sys/socket.h> #include <sys/types.h> -#include <sys/poll.h> +#include <poll.h> #include <linux/netlink.h> #include "types.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/statics.c new/open-iscsi-2.1.2-suse/usr/statics.c --- old/open-iscsi-2.1.1-suse/usr/statics.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/statics.c 2020-07-27 18:09:11.000000000 +0200 @@ -1,6 +1,6 @@ #include <unistd.h> #include <pwd.h> -#include <sys/errno.h> +#include <errno.h> #include <sys/types.h> static struct passwd root_pw = { @@ -17,4 +17,3 @@ return 0; } } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/usr/version.h new/open-iscsi-2.1.2-suse/usr/version.h --- old/open-iscsi-2.1.1-suse/usr/version.h 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/usr/version.h 2020-07-27 18:09:11.000000000 +0200 @@ -6,7 +6,7 @@ * This may not be the same value as the kernel versions because * some other maintainer could merge a patch without going through us */ -#define ISCSI_VERSION_STR "2.1.1-suse" +#define ISCSI_VERSION_STR "2.1.2-suse" #define ISCSI_VERSION_FILE "/sys/module/scsi_transport_iscsi/version" #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/utils/Makefile new/open-iscsi-2.1.2-suse/utils/Makefile --- old/open-iscsi-2.1.1-suse/utils/Makefile 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/utils/Makefile 2020-07-27 18:09:11.000000000 +0200 @@ -1,7 +1,7 @@ # This Makefile will work only with GNU make. CFLAGS ?= -O2 -fno-inline -g -CFLAGS += -Wall -Wstrict-prototypes +CFLAGS += -Wall -Wextra -Wstrict-prototypes PROGRAMS = iscsi-iname all: $(PROGRAMS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/utils/fwparam_ibft/fwparam_ibft.c new/open-iscsi-2.1.2-suse/utils/fwparam_ibft/fwparam_ibft.c --- old/open-iscsi-2.1.1-suse/utils/fwparam_ibft/fwparam_ibft.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/utils/fwparam_ibft/fwparam_ibft.c 2020-07-27 18:09:11.000000000 +0200 @@ -463,6 +463,7 @@ if (stat(filename, &buf)!=0) { fprintf(stderr, "Could not stat file %s: %s (%d)\n", filename, strerror(errno), errno); + close(fd); return -1; } /* And if not zero use that size */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/utils/fwparam_ibft/fwparam_sysfs.c new/open-iscsi-2.1.2-suse/utils/fwparam_ibft/fwparam_sysfs.c --- old/open-iscsi-2.1.1-suse/utils/fwparam_ibft/fwparam_sysfs.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/utils/fwparam_ibft/fwparam_sysfs.c 2020-07-27 18:09:11.000000000 +0200 @@ -115,8 +115,11 @@ break; } - if (sscanf(dent->d_name, "net:%s", context->iface) != 1) + if (sscanf(dent->d_name, "net:%s", context->iface) != 1) { rc = EINVAL; + break; + } + rc = 0; break; } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.1-suse/utils/iscsi-iname.c new/open-iscsi-2.1.2-suse/utils/iscsi-iname.c --- old/open-iscsi-2.1.1-suse/utils/iscsi-iname.c 2020-03-03 19:47:48.000000000 +0100 +++ new/open-iscsi-2.1.2-suse/utils/iscsi-iname.c 2020-07-27 18:09:11.000000000 +0200 @@ -40,6 +40,13 @@ * a seperator and 12 characters (6 random bytes in hex representation) */ #define PREFIX_MAX_LEN 210 +static void usage(void) +{ + fprintf(stderr, "Usage: iscsi-iname [-h | --help | -p <prefix>]\n"); + fprintf(stderr, "where <prefix> has max length of %d\n", + PREFIX_MAX_LEN); +} + int main(int argc, char *argv[]) { @@ -68,15 +75,17 @@ "on every invocation.\n"); exit(0); } else if ( strcmp(prefix, "-p") == 0 ) { + if (argc != 3) { + usage(); + exit(1); + } prefix = argv[2]; if (strnlen(prefix, PREFIX_MAX_LEN + 1) > PREFIX_MAX_LEN) { - printf("Error: Prefix cannot exceed %d " - "characters.\n", PREFIX_MAX_LEN); + usage(); exit(1); } } else { - printf("\nUsage: iscsi-iname [-h | --help | " - "-p <prefix>]\n"); + usage(); exit(0); } } else { ++++++ open-iscsi-SUSE-latest.diff.bz2 ++++++ --- /var/tmp/diff_new_pack.hzjeER/_old 2020-08-02 12:29:19.891917174 +0200 +++ /var/tmp/diff_new_pack.hzjeER/_new 2020-08-02 12:29:19.891917174 +0200 @@ -1,456 +0,0 @@ -diff --git a/Makefile b/Makefile -index f0ae91449a97..c4f33889616d 100644 ---- a/Makefile -+++ b/Makefile -@@ -30,6 +30,7 @@ IFACEFILES = etc/iface.example - RULESFILES = utils/50-iscsi-firmware-login.rules - SYSTEMDFILES = etc/systemd/iscsi.service \ - etc/systemd/iscsid.service etc/systemd/iscsid.socket \ -+ etc/systemd/iscsi-init.service \ - etc/systemd/iscsiuio.service etc/systemd/iscsiuio.socket - - export DESTDIR prefix INSTALL -@@ -107,7 +108,7 @@ install: install_programs install_doc install_etc \ - install_udev_rules - - install_user: install_programs install_doc install_etc \ -- install_initd install_iname install_iface install_udev_rules \ -+ install_initd install_iface install_udev_rules \ - install_libopeniscsiusr - - install_udev_rules: -diff --git a/etc/systemd/iscsi-init.service b/etc/systemd/iscsi-init.service -new file mode 100644 -index 000000000000..34557bfa8a71 ---- /dev/null -+++ b/etc/systemd/iscsi-init.service -@@ -0,0 +1,8 @@ -+[Unit] -+Description=One time configuration for iscsid.service -+ConditionPathExists=!/etc/iscsi/initiatorname.iscsi -+ -+[Service] -+Type=oneshot -+RemainAfterExit=no -+ExecStart=/sbin/iscsi-gen-initiatorname -diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service -index e4758881cb9c..3de873bf0dc5 100644 ---- a/etc/systemd/iscsi.service -+++ b/etc/systemd/iscsi.service -@@ -3,15 +3,14 @@ Description=Login and scanning of iSCSI devices - Documentation=man:iscsiadm(8) man:iscsid(8) - Before=remote-fs.target - After=network.target network-online.target iscsid.service --Requires=iscsid.service --ConditionPathExists=/etc/iscsi/initiatorname.iscsi -+Requires=iscsid.socket iscsi-init.service - - [Service] - Type=oneshot - ExecStart=/sbin/iscsiadm -m node --loginall=automatic - ExecStop=/sbin/iscsiadm -m node --logoutall=automatic - ExecStop=/sbin/iscsiadm -m node --logoutall=manual --SuccessExitStatus=21 -+SuccessExitStatus=21 15 - RemainAfterExit=true - - [Install] -diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service -index 4fef168163ca..fb7dc766d700 100644 ---- a/etc/systemd/iscsid.service -+++ b/etc/systemd/iscsid.service -@@ -2,8 +2,10 @@ - Description=Open-iSCSI - Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) - DefaultDependencies=no --After=network.target iscsiuio.service -+After=network.target iscsiuio.service iscsi-init.service - Before=remote-fs-pre.target -+Wants=remote-fs-pre.target -+Requires=iscsi-init.service - - [Service] - Type=notify -diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service -index e4d9fd0f916a..923e01978cf4 100644 ---- a/etc/systemd/iscsiuio.service -+++ b/etc/systemd/iscsiuio.service -@@ -7,6 +7,7 @@ Requires=iscsid.service - BindTo=iscsid.service - After=network.target - Before=remote-fs-pre.target iscsid.service -+Wants=remote-fs-pre.target - - [Service] - Type=notify -diff --git a/include/iscsi_if.h b/include/iscsi_if.h -index 2d46214c2a60..5a1c61449d66 100644 ---- a/include/iscsi_if.h -+++ b/include/iscsi_if.h -@@ -841,7 +841,7 @@ struct iscsi_stats { - * up to ISCSI_STATS_CUSTOM_MAX - */ - uint32_t custom_length; -- struct iscsi_stats_custom custom[0] -+ struct iscsi_stats_custom custom[] - __attribute__ ((aligned (sizeof(uint64_t)))); - }; - -@@ -972,7 +972,7 @@ struct iscsi_offload_host_stats { - * up to ISCSI_HOST_STATS_CUSTOM_MAX - */ - uint32_t custom_length; -- struct iscsi_host_stats_custom custom[0] -+ struct iscsi_host_stats_custom custom[] - __attribute__ ((aligned (sizeof(uint64_t)))); - }; - -diff --git a/iscsiuio/src/uip/ipv6.c b/iscsiuio/src/uip/ipv6.c -index 05efa73fcfdd..11cb4e9aa8ec 100644 ---- a/iscsiuio/src/uip/ipv6.c -+++ b/iscsiuio/src/uip/ipv6.c -@@ -519,7 +519,7 @@ static void ipv6_insert_protocol_chksum(struct ipv6_hdr *ipv6) - * SRC IP, DST IP, Protocol Data Length, and Next Header. - */ - sum = 0; -- ptr = (u16_t *)&ipv6->ipv6_src; -+ ptr = (u16_t *)&ipv6->ipv6_src.addr16[0]; - - for (i = 0; i < sizeof(struct ipv6_addr); i++) { - sum += HOST_TO_NET16(*ptr); -diff --git a/iscsiuio/src/unix/nic_nl.c b/iscsiuio/src/unix/nic_nl.c -index f8306563462f..dee462e799ed 100644 ---- a/iscsiuio/src/unix/nic_nl.c -+++ b/iscsiuio/src/unix/nic_nl.c -@@ -50,7 +50,7 @@ - #include <linux/netlink.h> - #include <iscsi_if.h> - #include <sys/ioctl.h> --#include <sys/poll.h> -+#include <poll.h> - #include <sys/types.h> - #include <sys/user.h> - #include <sys/socket.h> -diff --git a/iscsiuio/src/unix/nic_utils.c b/iscsiuio/src/unix/nic_utils.c -index ec3b91555069..ec4535de0e23 100644 ---- a/iscsiuio/src/unix/nic_utils.c -+++ b/iscsiuio/src/unix/nic_utils.c -@@ -603,7 +603,10 @@ static int from_uio_find_associated_host(nic_t *nic, int uio_minor, - search_filters[path_iterator], alphasort); - - switch (count) { -- case 1: -+ case 1: { -+ char *parsed_src; -+ size_t parsed_size; -+ - parsed_name = (*extract_name[path_iterator]) (files); - if (!parsed_name) { - LOG_WARN(PFX "Couldn't find delimiter in: %s", -@@ -612,15 +615,22 @@ static int from_uio_find_associated_host(nic_t *nic, int uio_minor, - break; - } - -- strncpy(name, -- parsed_name + -- extract_name_offset[path_iterator], name_size); -+ parsed_src = parsed_name + extract_name_offset[path_iterator]; -+ parsed_size = strlen(parsed_src); -+ if (parsed_size >= name_size) { -+ LOG_WARN(PFX "uio device name too long: %s (max %d)", -+ parsed_src, (int)name_size - 1); -+ rc = -EINVAL; -+ } else { -+ strncpy(name, parsed_src, name_size); -+ rc = 0; -+ } - - free(files[0]); - free(files); - -- rc = 0; - break; -+ } - - case 0: - rc = -EINVAL; -diff --git a/usr/discovery.c b/usr/discovery.c -index 9ce122e103e8..7dec696fbc80 100644 ---- a/usr/discovery.c -+++ b/usr/discovery.c -@@ -25,7 +25,7 @@ - #include <stdint.h> - #include <stdlib.h> - #include <string.h> --#include <sys/poll.h> -+#include <poll.h> - #include <sys/time.h> - #include <sys/param.h> - #include <sys/socket.h> -diff --git a/usr/event_poll.c b/usr/event_poll.c -index 4cf4ce2b3ba4..ffd12a375118 100644 ---- a/usr/event_poll.c -+++ b/usr/event_poll.c -@@ -23,7 +23,7 @@ - */ - #include <stdlib.h> - #include <errno.h> --#include <sys/poll.h> -+#include <poll.h> - #include <sys/types.h> - #include <sys/wait.h> - #include <sys/signalfd.h> -diff --git a/usr/iface.c b/usr/iface.c -index 323f16752eb5..11f3d2ac8778 100644 ---- a/usr/iface.c -+++ b/usr/iface.c -@@ -905,6 +905,9 @@ int iface_for_each_iface(void *data, int skip_def, int *nr_found, - !strcmp(iface_dent->d_name, "..")) - continue; - -+ if (!strcmp(iface_dent->d_name, "iface.example")) -+ continue; -+ - log_debug(5, "iface_for_each_iface found %s", - iface_dent->d_name); - iface = iface_alloc(iface_dent->d_name, &err); -diff --git a/usr/initiator.c b/usr/initiator.c -index a07f9aa64ab9..5f4bdca35dc1 100644 ---- a/usr/initiator.c -+++ b/usr/initiator.c -@@ -711,11 +711,7 @@ static void iscsi_login_eh(struct iscsi_conn *conn, struct queue_task *qtask, - !iscsi_retry_initial_login(conn)) - session_conn_shutdown(conn, qtask, err); - else { -- session->reopen_cnt++; -- session->t->template->ep_disconnect(conn); -- if (iscsi_conn_connect(conn, qtask)) -- queue_delayed_reopen(qtask, -- ISCSI_CONN_ERR_REOPEN_DELAY); -+ session_conn_reopen(conn, qtask, STOP_CONN_TERM); - } - break; - case R_STAGE_SESSION_REDIRECT: -diff --git a/usr/io.c b/usr/io.c -index 210a10ad82a6..a46c9f8c5c95 100644 ---- a/usr/io.c -+++ b/usr/io.c -@@ -24,7 +24,7 @@ - #include <signal.h> - #include <unistd.h> - #include <fcntl.h> --#include <sys/poll.h> -+#include <poll.h> - #include <sys/ioctl.h> - #include <netinet/tcp.h> - #include <arpa/inet.h> -diff --git a/usr/iscsi_util.c b/usr/iscsi_util.c -index fd8fc0cf2a08..db1dc377727f 100644 ---- a/usr/iscsi_util.c -+++ b/usr/iscsi_util.c -@@ -152,7 +152,9 @@ int increase_max_files(void) - log_debug(1, "Could not get file limit (err %d)", errno); - return errno; - } -- log_debug(1, "Max file limits %lu %lu", rl.rlim_cur, rl.rlim_max); -+ log_debug(1, "Max file limits %lu %lu", -+ (long unsigned)rl.rlim_cur, -+ (long unsigned)rl.rlim_max); - - if (rl.rlim_cur < ISCSI_MAX_FILES) - rl.rlim_cur = ISCSI_MAX_FILES; -@@ -162,7 +164,8 @@ int increase_max_files(void) - err = setrlimit(RLIMIT_NOFILE, &rl); - if (err) { - log_debug(1, "Could not set file limit to %lu/%lu (err %d)", -- rl.rlim_cur, rl.rlim_max, errno); -+ (long unsigned)rl.rlim_cur, -+ (long unsigned)rl.rlim_max, errno); - return errno; - } - -diff --git a/usr/iscsid.c b/usr/iscsid.c -index 99d27ab0e315..e50149823bee 100644 ---- a/usr/iscsid.c -+++ b/usr/iscsid.c -@@ -310,7 +310,12 @@ static void iscsid_shutdown(void) - - static void catch_signal(int signo) - { -- log_debug(1, "pid %d caught signal %d", getpid(), signo); -+ /* -+ * Do not try to call log_debug() if there is a PIPE error -+ * because we can get caught in a PIPE error loop. -+ */ -+ if (signo != SIGPIPE) -+ log_debug(1, "pid %d caught signal %d", getpid(), signo); - - /* In foreground mode, treat SIGINT like SIGTERM */ - if (!daemonize && signo == SIGINT) -diff --git a/usr/iscsistart.c b/usr/iscsistart.c -index 00a9c78a53b5..ee810f7ae266 100644 ---- a/usr/iscsistart.c -+++ b/usr/iscsistart.c -@@ -30,7 +30,6 @@ - #include <time.h> - #include <sys/mman.h> - #include <sys/utsname.h> --#include <sys/signal.h> - #include <sys/types.h> - #include <sys/wait.h> - -diff --git a/usr/log.c b/usr/log.c -index 6e16e7cef3c7..2fc1850e26ad 100644 ---- a/usr/log.c -+++ b/usr/log.c -@@ -73,7 +73,7 @@ static int logarea_init (int size) - logdbg(stderr,"enter logarea_init\n"); - - if ((shmid = shmget(IPC_PRIVATE, sizeof(struct logarea), -- 0644 | IPC_CREAT | IPC_EXCL)) == -1) { -+ 0600 | IPC_CREAT | IPC_EXCL)) == -1) { - syslog(LOG_ERR, "shmget logarea failed %d", errno); - return 1; - } -@@ -93,7 +93,7 @@ static int logarea_init (int size) - size = DEFAULT_AREA_SIZE; - - if ((shmid = shmget(IPC_PRIVATE, size, -- 0644 | IPC_CREAT | IPC_EXCL)) == -1) { -+ 0600 | IPC_CREAT | IPC_EXCL)) == -1) { - syslog(LOG_ERR, "shmget msg failed %d", errno); - free_logarea(); - return 1; -@@ -114,7 +114,7 @@ static int logarea_init (int size) - la->tail = la->start; - - if ((shmid = shmget(IPC_PRIVATE, MAX_MSG_SIZE + sizeof(struct logmsg), -- 0644 | IPC_CREAT | IPC_EXCL)) == -1) { -+ 0600 | IPC_CREAT | IPC_EXCL)) == -1) { - syslog(LOG_ERR, "shmget logmsg failed %d", errno); - free_logarea(); - return 1; -diff --git a/usr/mgmt_ipc.c b/usr/mgmt_ipc.c -index 51267c133fd8..c292161f6cea 100644 ---- a/usr/mgmt_ipc.c -+++ b/usr/mgmt_ipc.c -@@ -26,6 +26,7 @@ - #include <unistd.h> - #include <pwd.h> - #include <sys/un.h> -+#include <string.h> - - #include "iscsid.h" - #include "idbm.h" -diff --git a/usr/netlink.c b/usr/netlink.c -index d42ca4fb0791..22cad8344b0e 100644 ---- a/usr/netlink.c -+++ b/usr/netlink.c -@@ -30,7 +30,7 @@ - #include <asm/types.h> - #include <sys/socket.h> - #include <sys/types.h> --#include <sys/poll.h> -+#include <poll.h> - #include <linux/netlink.h> - - #include "types.h" -diff --git a/usr/statics.c b/usr/statics.c -index 59fb044d3f68..f59729bad837 100644 ---- a/usr/statics.c -+++ b/usr/statics.c -@@ -1,6 +1,6 @@ - #include <unistd.h> - #include <pwd.h> --#include <sys/errno.h> -+#include <errno.h> - #include <sys/types.h> - - static struct passwd root_pw = { -@@ -17,4 +17,3 @@ getpwuid(uid_t uid) - return 0; - } - } -- -diff --git a/utils/Makefile b/utils/Makefile -index f65f1e79008c..aed3bb0a694f 100644 ---- a/utils/Makefile -+++ b/utils/Makefile -@@ -1,7 +1,7 @@ - # This Makefile will work only with GNU make. - - CFLAGS ?= -O2 -fno-inline -g --CFLAGS += -Wall -Wstrict-prototypes -+CFLAGS += -Wall -Wextra -Wstrict-prototypes - PROGRAMS = iscsi-iname - - all: $(PROGRAMS) -diff --git a/utils/fwparam_ibft/fwparam_ibft.c b/utils/fwparam_ibft/fwparam_ibft.c -index 52edac103bf3..e68e50342650 100644 ---- a/utils/fwparam_ibft/fwparam_ibft.c -+++ b/utils/fwparam_ibft/fwparam_ibft.c -@@ -463,6 +463,7 @@ fwparam_ibft(struct boot_context *context, const char *filepath) - if (stat(filename, &buf)!=0) { - fprintf(stderr, "Could not stat file %s: %s (%d)\n", - filename, strerror(errno), errno); -+ close(fd); - return -1; - } - /* And if not zero use that size */ -diff --git a/utils/fwparam_ibft/fwparam_sysfs.c b/utils/fwparam_ibft/fwparam_sysfs.c -index a0cd1c70a216..87fd6d4a40db 100644 ---- a/utils/fwparam_ibft/fwparam_sysfs.c -+++ b/utils/fwparam_ibft/fwparam_sysfs.c -@@ -115,8 +115,11 @@ static int get_iface_from_device(char *id, struct boot_context *context) - break; - } - -- if (sscanf(dent->d_name, "net:%s", context->iface) != 1) -+ if (sscanf(dent->d_name, "net:%s", context->iface) != 1) { - rc = EINVAL; -+ break; -+ } -+ - rc = 0; - break; - } else { -diff --git a/utils/iscsi-iname.c b/utils/iscsi-iname.c -index da850dca0088..0f587e1e0d36 100644 ---- a/utils/iscsi-iname.c -+++ b/utils/iscsi-iname.c -@@ -40,6 +40,13 @@ - * a seperator and 12 characters (6 random bytes in hex representation) */ - #define PREFIX_MAX_LEN 210 - -+static void usage(void) -+{ -+ fprintf(stderr, "Usage: iscsi-iname [-h | --help | -p <prefix>]\n"); -+ fprintf(stderr, "where <prefix> has max length of %d\n", -+ PREFIX_MAX_LEN); -+} -+ - int - main(int argc, char *argv[]) - { -@@ -68,15 +75,17 @@ main(int argc, char *argv[]) - "on every invocation.\n"); - exit(0); - } else if ( strcmp(prefix, "-p") == 0 ) { -+ if (argc != 3) { -+ usage(); -+ exit(1); -+ } - prefix = argv[2]; - if (strnlen(prefix, PREFIX_MAX_LEN + 1) > PREFIX_MAX_LEN) { -- printf("Error: Prefix cannot exceed %d " -- "characters.\n", PREFIX_MAX_LEN); -+ usage(); - exit(1); - } - } else { -- printf("\nUsage: iscsi-iname [-h | --help | " -- "-p <prefix>]\n"); -+ usage(); - exit(0); - } - } else {