Date: Tuesday, May 29, 2018 @ 21:44:22
  Author: eworm
Revision: 333210

archrelease: copy trunk to community-testing-x86_64

Added:
  open-iscsi/repos/community-testing-x86_64/
  open-iscsi/repos/community-testing-x86_64/0001-gcc8.patch
    (from rev 333209, open-iscsi/trunk/0001-gcc8.patch)
  open-iscsi/repos/community-testing-x86_64/PKGBUILD
    (from rev 333209, open-iscsi/trunk/PKGBUILD)
  open-iscsi/repos/community-testing-x86_64/open-iscsi.install
    (from rev 333209, open-iscsi/trunk/open-iscsi.install)
  open-iscsi/repos/community-testing-x86_64/open-iscsi.service
    (from rev 333209, open-iscsi/trunk/open-iscsi.service)

--------------------+
 0001-gcc8.patch    |  190 +++++++++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD           |   60 ++++++++++++++++
 open-iscsi.install |   12 +++
 open-iscsi.service |   10 ++
 4 files changed, 272 insertions(+)

Copied: open-iscsi/repos/community-testing-x86_64/0001-gcc8.patch (from rev 
333209, open-iscsi/trunk/0001-gcc8.patch)
===================================================================
--- community-testing-x86_64/0001-gcc8.patch                            (rev 0)
+++ community-testing-x86_64/0001-gcc8.patch    2018-05-29 21:44:22 UTC (rev 
333210)
@@ -0,0 +1,190 @@
+From 7fd4eb9313154f3b3458ea07d6a12f0be26d2a4e Mon Sep 17 00:00:00 2001
+From: Lee Duncan <ldun...@suse.com>
+Date: Wed, 21 Mar 2018 16:43:33 -0700
+Subject: Use correct size when copying nic name.
+
+The incorrect length was being used to copy
+the NIC name.
+
+Found by gcc-8, which gave this error:
+>    [   19s] nic_utils.c: In function 'nic_util_enable_disable_multicast':
+>    [   19s] nic_utils.c:308:9: warning: argument to 'sizeof' in 'strncpy'
+>             call is the same expression as the source; did you mean to
+>             use the size of the destination? [-Wsizeof-pointer-memaccess]
+>    [   19s]    sizeof(nic->eth_device_name));
+>    [   19s]          ^
+---
+ iscsiuio/src/unix/nic_utils.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/iscsiuio/src/unix/nic_utils.c b/iscsiuio/src/unix/nic_utils.c
+index e2f2943..786f2a4 100644
+--- a/iscsiuio/src/unix/nic_utils.c
++++ b/iscsiuio/src/unix/nic_utils.c
+@@ -305,7 +305,7 @@ static int nic_util_enable_disable_multicast(nic_t *nic, 
uint32_t cmd)
+       /* Prepare the request */
+       memset(&ifr, 0, sizeof(ifr));
+       strncpy(ifr.ifr_name, nic->eth_device_name,
+-              sizeof(nic->eth_device_name));
++              sizeof(ifr.ifr_name));
+       memcpy(ifr.ifr_hwaddr.sa_data, multicast_addr.addr, ETH_ALEN);
+ 
+       fd = socket(AF_INET, SOCK_DGRAM, 0);
+-- 
+cgit v1.1-33-g03f6
+
+
+From 1846d2c995f38fc5fa6e1960f6644b4b3b543bb0 Mon Sep 17 00:00:00 2001
+From: Lee Duncan <ldun...@suse.com>
+Date: Wed, 21 Mar 2018 16:47:10 -0700
+Subject: Do not overload global sysfs_path locally.
+
+There is a global string "sysfs_path", and
+it was confusing having a local variable of
+the same name, so rename the local version,
+to be clear which one is being used.
+---
+ usr/iscsi_sysfs.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/usr/iscsi_sysfs.c b/usr/iscsi_sysfs.c
+index 0cc55b9..031ac1d 100644
+--- a/usr/iscsi_sysfs.c
++++ b/usr/iscsi_sysfs.c
+@@ -1153,7 +1153,7 @@ int iscsi_sysfs_for_each_iface_on_host(void *data, 
uint32_t host_no,
+       int rc = 0, i, n;
+       struct iface_rec iface;
+         char devpath[PATH_SIZE];
+-        char sysfs_path[PATH_SIZE];
++        char sysfs_dev_iscsi_iface_path[PATH_SIZE];
+         char id[NAME_SIZE];
+ 
+         snprintf(id, sizeof(id), "host%u", host_no);
+@@ -1163,11 +1163,11 @@ int iscsi_sysfs_for_each_iface_on_host(void *data, 
uint32_t host_no,
+                 return ISCSI_ERR_SYSFS_LOOKUP;
+         }
+ 
+-      sprintf(sysfs_path, "/sys");
+-      strlcat(sysfs_path, devpath, sizeof(sysfs_path));
+-      strlcat(sysfs_path, "/iscsi_iface", sizeof(sysfs_path));
++      sprintf(sysfs_dev_iscsi_iface_path, "/sys");
++      strlcat(sysfs_dev_iscsi_iface_path, devpath, 
sizeof(sysfs_dev_iscsi_iface_path));
++      strlcat(sysfs_dev_iscsi_iface_path, "/iscsi_iface", 
sizeof(sysfs_dev_iscsi_iface_path));
+ 
+-      n = scandir(sysfs_path, &namelist, trans_filter, alphasort);
++      n = scandir(sysfs_dev_iscsi_iface_path, &namelist, trans_filter, 
alphasort);
+       if (n <= 0)
+               /* older kernels or some drivers will not have ifaces */
+               return 0;
+-- 
+cgit v1.1-33-g03f6
+
+
+From af02412d3dd3839441ae48e2c9f9c307889d5fc1 Mon Sep 17 00:00:00 2001
+From: Lee Duncan <ldun...@suse.com>
+Date: Wed, 21 Mar 2018 18:44:44 -0700
+Subject: libopeniscsiusr: ensure sysfs pathname doesn't overflow.
+
+When instantiating a pathname in sysfs, make sure there's enough
+room to prevent possible overflow.
+
+Found by gcc-8, which gave this warning:
+> [54s] sysfs.c:326:48: error: '/iscsi_host/' directive output may be
+>    truncated writing 12 bytes into a region of size between 1 and 4096
+>    [-Werror=format-truncation=]
+---
+ libopeniscsiusr/sysfs.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/libopeniscsiusr/sysfs.c b/libopeniscsiusr/sysfs.c
+index 70298f2..6f590f4 100644
+--- a/libopeniscsiusr/sysfs.c
++++ b/libopeniscsiusr/sysfs.c
+@@ -311,6 +311,9 @@ int _iscsi_host_id_of_session(struct iscsi_context *ctx, 
uint32_t sid,
+       int n = 0;
+       const char *host_id_str = NULL;
+       int i = 0;
++      const char iscsi_host_dir_str[] = "/iscsi_host/";
++      const unsigned int iscsi_host_dir_strlen = strlen(iscsi_host_dir_str);
++
+ 
+       assert(ctx != NULL);
+       assert(sid != 0);
+@@ -323,8 +326,16 @@ int _iscsi_host_id_of_session(struct iscsi_context *ctx, 
uint32_t sid,
+ 
+       _good(sysfs_get_dev_path(ctx, sys_se_dir_path, sys_dev_path), rc, out);
+ 
+-      snprintf(sys_scsi_host_dir_path, PATH_MAX, "%s/iscsi_host/",
+-               sys_dev_path);
++      if ((strlen(sys_dev_path) + iscsi_host_dir_strlen) >= PATH_MAX) {
++              rc = LIBISCSI_ERR_SYSFS_LOOKUP;
++              _error(ctx, "Pathname too long: %s%s",
++                     sys_dev_path, iscsi_host_dir_str);
++              goto out;
++      }
++
++      strncpy(sys_scsi_host_dir_path, sys_dev_path, PATH_MAX);
++      strncat(sys_scsi_host_dir_path, iscsi_host_dir_str,
++              PATH_MAX - iscsi_host_dir_strlen);
+ 
+       n = scandir(sys_scsi_host_dir_path, &namelist, _scan_filter_skip_dot,
+                   alphasort);
+-- 
+cgit v1.1-33-g03f6
+
+
+From 47de9586abd04e412e53232c88d7b1c8f89034f6 Mon Sep 17 00:00:00 2001
+From: Lee Duncan <ldun...@suse.com>
+Date: Wed, 21 Mar 2018 18:59:40 -0700
+Subject: Ensure sysfs pathname doesn't overflow.
+
+When instantiating a pathname in sysfs, make sure there's enough
+room to prevent possible overflow.
+
+Found by gcc-8, which gave this warning:
+>    [   13s] iscsi_sysfs.c: In function 'iscsi_sysfs_for_each_device':
+>    [   13s] iscsi_sysfs.c:1822:44: warning: '%s' directive output may
+>             be truncated writing up to 511 bytes into a region of size
+>             between 1 and 512 [-Wformat-truncation=]
+>    [   13s]   snprintf(path_full, sizeof(path_full), 
"%s%s/device/target%d:0:%d",
+>    [   13s]                                             ^~
+>    [   13s]     sysfs_path, devpath, host_no, target);
+>    [   13s]                 ~~~~~~~
+>    [   13s] iscsi_sysfs.c:1822:41: note: using the range
+>             [-2147483648, 2147483647] for directive argument
+>    [   13s]   snprintf(path_full, sizeof(path_full), 
"%s%s/device/target%d:0:%d",
+>    [   13s]                                          
^~~~~~~~~~~~~~~~~~~~~~~~~~~
+---
+ usr/iscsi_sysfs.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/usr/iscsi_sysfs.c b/usr/iscsi_sysfs.c
+index 031ac1d..a510694 100644
+--- a/usr/iscsi_sysfs.c
++++ b/usr/iscsi_sysfs.c
+@@ -1806,7 +1806,7 @@ int iscsi_sysfs_for_each_device(void *data, int host_no, 
uint32_t sid,
+       int h, b, t, l, i, n, err = 0, target;
+       char devpath[PATH_SIZE];
+       char id[NAME_SIZE];
+-      char path_full[PATH_SIZE];
++      char path_full[3*PATH_SIZE];
+ 
+       target = get_target_no_from_sid(sid, &err);
+       if (err)
+@@ -1821,6 +1821,13 @@ int iscsi_sysfs_for_each_device(void *data, int 
host_no, uint32_t sid,
+ 
+       snprintf(path_full, sizeof(path_full), "%s%s/device/target%d:0:%d",
+                sysfs_path, devpath, host_no, target);
++
++      if (strlen(path_full) > PATH_SIZE) {
++              log_debug(3, "Could not lookup devpath for %s %s (too long)",
++                        ISCSI_SESSION_SUBSYS, id);
++              return ISCSI_ERR_SYSFS_LOOKUP;
++      }
++
+       n = scandir(path_full, &namelist, trans_filter,
+                   alphasort);
+       if (n <= 0)
+-- 
+cgit v1.1-33-g03f6
+

Copied: open-iscsi/repos/community-testing-x86_64/PKGBUILD (from rev 333209, 
open-iscsi/trunk/PKGBUILD)
===================================================================
--- community-testing-x86_64/PKGBUILD                           (rev 0)
+++ community-testing-x86_64/PKGBUILD   2018-05-29 21:44:22 UTC (rev 333210)
@@ -0,0 +1,60 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+a...@gmail.com>
+# Maintainer: Stefan Kirrmann <stefan.kirrmann at gmail dot com>
+
+pkgname=open-iscsi
+pkgver=2.0.876
+pkgrel=1
+pkgdesc="userland tools"
+arch=('x86_64')
+url="http://www.open-iscsi.com/";
+license=('GPL')
+depends=('libutil-linux' 'openssl' 'open-isns')
+install=$pkgname.install
+backup=('etc/iscsi/iscsid.conf'
+       'etc/iscsi/initiatorname.iscsi')
+options=('docs')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/open-iscsi/open-iscsi/archive/$pkgver.tar.gz";
+        '0001-gcc8.patch'
+        'open-iscsi.service')
+sha256sums=('9f01327d5e100ed794dc5083fc18dc4a06a0c29c77b252e21abd1b8f56edd9a7'
+            'a8e6920f5e135dda4d8eb76eb9c5a00f793ed6ccfa9b51006b083c4b8177f171'
+            '7b8e37dd10a909a67ba7f7126f699920639be39adfa65f1d2b2bcd8846e58db7')
+
+prepare() {
+  cd "$srcdir"/${pkgname}-${pkgver}
+
+  # Merge pull request #94 from gonzoleeman/gcc-8-fixes
+  # Gcc 8 fixes -- clean up some string handling corner cases, and to make 
compiler happy
+  patch -Np1 < '../0001-gcc8.patch'
+
+  # include iscsistart in the package
+  sed -i -e '/^PROGRAMS = /s/$/ usr\/iscsistart/' Makefile
+
+  # build breaks if the openslp package is installed
+  sed -i -e 's/\(\.\/configure\)/ \1 --without-slp/g' Makefile
+}
+
+build() {
+  cd "$srcdir"/${pkgname}-${pkgver}
+
+  make user
+}
+
+package() {
+  cd "$srcdir"/${pkgname}-${pkgver}
+
+  make DESTDIR="$pkgdir" install_user
+
+  install -D -m644 "$srcdir"/${pkgname}-${pkgver}/etc/iscsid.conf 
"$pkgdir"/etc/iscsi
+  install -D -m644 "$srcdir"/open-iscsi.service 
"$pkgdir"/usr/lib/systemd/system/open-iscsi.service
+
+  echo -n >"$pkgdir"/etc/iscsi/initiatorname.iscsi
+
+  # copy docs
+  mkdir -p "$pkgdir"/usr/share/doc/${pkgname}
+  install -m644 Changelog "$pkgdir"/usr/share/doc/${pkgname}/
+  install -m644 README "$pkgdir"/usr/share/doc/${pkgname}/
+
+  mv "$pkgdir"/sbin "$pkgdir"/usr/bin
+}

Copied: open-iscsi/repos/community-testing-x86_64/open-iscsi.install (from rev 
333209, open-iscsi/trunk/open-iscsi.install)
===================================================================
--- community-testing-x86_64/open-iscsi.install                         (rev 0)
+++ community-testing-x86_64/open-iscsi.install 2018-05-29 21:44:22 UTC (rev 
333210)
@@ -0,0 +1,12 @@
+post_install() {
+       if [ -z $(<etc/iscsi/initiatorname.iscsi) ]; then
+         name=$(iscsi-iname)
+         echo
+         echo ">>> Setting Initiatorname '$name'"
+         echo "InitiatorName=$name" >etc/iscsi/initiatorname.iscsi
+       fi
+}
+
+post_upgrade() {
+       post_install
+}

Copied: open-iscsi/repos/community-testing-x86_64/open-iscsi.service (from rev 
333209, open-iscsi/trunk/open-iscsi.service)
===================================================================
--- community-testing-x86_64/open-iscsi.service                         (rev 0)
+++ community-testing-x86_64/open-iscsi.service 2018-05-29 21:44:22 UTC (rev 
333210)
@@ -0,0 +1,10 @@
+[Unit]
+Description=Open iSCSI Daemon
+After=network.target
+
+[Service]
+Type=forking
+ExecStart=/sbin/iscsid
+
+[Install]
+WantedBy=multi-user.target

Reply via email to