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 {


Reply via email to