Hello community,

here is the log from the commit of package libstoragemgmt for openSUSE:Factory 
checked in at 2018-04-17 11:08:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstoragemgmt (Old)
 and      /work/SRC/openSUSE:Factory/.libstoragemgmt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libstoragemgmt"

Tue Apr 17 11:08:56 2018 rev:14 rq:595903 version:1.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libstoragemgmt/libstoragemgmt.changes    
2018-01-10 23:29:21.336389556 +0100
+++ /work/SRC/openSUSE:Factory/.libstoragemgmt.new/libstoragemgmt.changes       
2018-04-17 11:09:01.150315657 +0200
@@ -1,0 +2,9 @@
+Tue Mar 27 08:27:39 UTC 2018 - [email protected]
+
+- bsc#1084630, compat to gcc8
+  Enlarge the err_msg to avoid [-Werror=format-truncation=]
+  '-Wno-cast-function-type' for python c building
+  Add automake to build requires in spec file.
+- Add patch compat-gcc8.patch
+
+-------------------------------------------------------------------

New:
----
  compat-gcc8.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libstoragemgmt.spec ++++++
--- /var/tmp/diff_new_pack.J8ameV/_old  2018-04-17 11:09:01.634293093 +0200
+++ /var/tmp/diff_new_pack.J8ameV/_new  2018-04-17 11:09:01.634293093 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libstoragemgmt
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -34,6 +34,8 @@
 Group:          System/Libraries
 Url:            https://github.com/libstorage/libstoragemgmt
 Source0:        
https://github.com/libstorage/libstoragemgmt/releases/download/%{version}/%{name}-%{version}.tar.gz
+Patch0:         compat-gcc8.patch
+BuildRequires:  automake
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  libconfig-devel
@@ -260,6 +262,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %configure \

++++++ compat-gcc8.patch ++++++
commit edbd5fed3cb5f4f48dcc7ee97f601d2ea3537911
Author: Gris Ge <[email protected]>
Date:   Fri Mar 23 20:38:55 2018 +0800

    Fix GCC 8 compile warnings.
    
     * Fix '-Werror=format-truncation' warning by increase the buffer size.
     * Fix '-Werror=cast-function-type' warning by disable it for Python c
       extension, reason:
       
https://stackoverflow.com/questions/10264080/python-c-extension-why-are-methods-that-use-keyword-arguments-cast-to-pycfunct

diff --git a/c_binding/libsg.c b/c_binding/libsg.c
index 75ee39d..4689369 100644
--- a/c_binding/libsg.c
+++ b/c_binding/libsg.c
@@ -367,8 +367,9 @@ static int _sg_io_open(char *err_msg, const char 
*disk_path, int *fd,
  * The 'sense_key' is the output pointer.
  * Return 0 if sense_key is _T10_SPC_SENSE_KEY_NO_SENSE or
  * _T10_SPC_SENSE_KEY_RECOVERED_ERROR, return -1 otherwise.
+ * sense_err_msg should be char[_LSM_ERR_MSG_LEN / 2]
  */
-static int _check_sense_data(char *err_msg, uint8_t *sense_data,
+static int _check_sense_data(char *sense_err_msg, uint8_t *sense_data,
                              uint8_t *sense_key);
 
 static int _extract_ata_sense_data(char *err_msg, uint8_t *sense_data,
@@ -485,14 +486,14 @@ int _sg_io_vpd(char *err_msg, int fd, uint8_t page_code, 
uint8_t *data)
     int rc_vpd_00 = 0;
     char strerr_buff[_LSM_ERR_MSG_LEN];
     uint8_t sense_key = _T10_SPC_SENSE_KEY_NO_SENSE;
-    char sense_err_msg[_LSM_ERR_MSG_LEN];
+    char sense_err_msg[_LSM_ERR_MSG_LEN / 2];
     ssize_t data_len = 0;
 
     assert(err_msg != NULL);
     assert(fd >= 0);
     assert(data != NULL);
 
-    memset(sense_err_msg, 0, _LSM_ERR_MSG_LEN);
+    memset(sense_err_msg, 0, sizeof(sense_err_msg));
 
     switch(page_code) {
     case _SG_T10_SPC_VPD_ATA_INFO:
@@ -812,7 +813,7 @@ static int _sg_io_open(char *err_msg, const char 
*disk_path, int *fd, int oflag)
     return rc;
 }
 
-static int _check_sense_data(char *err_msg, uint8_t *sense_data,
+static int _check_sense_data(char *sense_err_msg, uint8_t *sense_data,
                              uint8_t *sense_key)
 {
     int rc = -1;
@@ -856,8 +857,9 @@ static int _check_sense_data(char *err_msg, uint8_t 
*sense_data,
         rc = 0;
         goto out;
     default:
-        _lsm_err_msg_set(err_msg, "Got unknown sense data response code %02x",
-                         sense_hdr->response_code);
+        snprintf(sense_err_msg, _LSM_ERR_MSG_LEN / 2,
+                 "Got unknown sense data response code %02x",
+                 sense_hdr->response_code);
         goto out;
     }
     /* TODO(Gris Ge): Handle ADDITIONAL SENSE CODE field and ADDITIONAL SENSE
@@ -879,11 +881,12 @@ static int _check_sense_data(char *err_msg, uint8_t 
*sense_data,
     /* As sense_key is 4 bytes and we covered all 16 values in
      * _T10_SPC_SENSE_KEY_STR, there will be no out of index error.
      */
-        _lsm_err_msg_set(err_msg, "Got SCSI sense data, key %s(0x%02x), "
-                         "ADDITIONAL SENSE CODE 0x%02x, ADDITIONAL SENSE CODE "
-                         "QUALIFIER 0x%02x, all sense data in hex: %s",
-                         _T10_SPC_SENSE_KEY_STR[*sense_key], *sense_key,
-                         asc, ascq, sense_data_str);
+        snprintf(sense_err_msg, _LSM_ERR_MSG_LEN / 2 ,
+                 "Got SCSI sense data, key %s(0x%02x), "
+                 "ADDITIONAL SENSE CODE 0x%02x, ADDITIONAL SENSE CODE "
+                 "QUALIFIER 0x%02x, all sense data in hex: %s",
+                 _T10_SPC_SENSE_KEY_STR[*sense_key], *sense_key,
+                 asc, ascq, sense_data_str);
     }
 
  out:
@@ -921,13 +924,13 @@ int _sg_io_recv_diag(char *err_msg, int fd, uint8_t 
page_code, uint8_t *data)
     char strerr_buff[_LSM_ERR_MSG_LEN];
     uint8_t sense_data[_T10_SPC_SENSE_DATA_MAX_LENGTH];
     uint8_t sense_key = _T10_SPC_SENSE_KEY_NO_SENSE;
-    char sense_err_msg[_LSM_ERR_MSG_LEN];
+    char sense_err_msg[_LSM_ERR_MSG_LEN / 2];
 
     assert(err_msg != NULL);
     assert(fd >= 0);
     assert(data != NULL);
 
-    memset(sense_err_msg, 0, _LSM_ERR_MSG_LEN);
+    memset(sense_err_msg, 0, sizeof(sense_err_msg));
 
     /* SPC-5 rev 07, Table 219 - RECEIVE DIAGNOSTIC RESULTS command */
     cdb[0] = RECEIVE_DIAGNOSTIC;                /* OPERATION CODE */
@@ -975,14 +978,14 @@ int _sg_io_send_diag(char *err_msg, int fd, uint8_t 
*data, uint16_t data_len)
     char strerr_buff[_LSM_ERR_MSG_LEN];
     uint8_t sense_data[_T10_SPC_SENSE_DATA_MAX_LENGTH];
     uint8_t sense_key = _T10_SPC_SENSE_KEY_NO_SENSE;
-    char sense_err_msg[_LSM_ERR_MSG_LEN];
+    char sense_err_msg[_LSM_ERR_MSG_LEN / 2];
 
     assert(err_msg != NULL);
     assert(fd >= 0);
     assert(data != NULL);
     assert(data_len > 0);
 
-    memset(sense_err_msg, 0, _LSM_ERR_MSG_LEN);
+    memset(sense_err_msg, 0, sizeof(sense_err_msg));
 
     /* SPC-5 rev 07, Table 219 - RECEIVE DIAGNOSTIC RESULTS command */
     cdb[0] = SEND_DIAGNOSTIC;                   /* OPERATION CODE */
@@ -1078,7 +1081,7 @@ int _sg_io_mode_sense(char *err_msg, int fd, uint8_t 
page_code,
     int ioctl_errno = 0;
     char strerr_buff[_LSM_ERR_MSG_LEN];
     uint8_t sense_key = _T10_SPC_SENSE_KEY_NO_SENSE;
-    char sense_err_msg[_LSM_ERR_MSG_LEN];
+    char sense_err_msg[_LSM_ERR_MSG_LEN / 2];
     struct _sg_t10_mode_para_hdr *mode_hdr = NULL;
     uint16_t block_dp_len = 0;
     uint16_t mode_data_len = 0;
@@ -1087,7 +1090,7 @@ int _sg_io_mode_sense(char *err_msg, int fd, uint8_t 
page_code,
     assert(fd >= 0);
     assert(data != NULL);
 
-    memset(sense_err_msg, 0, _LSM_ERR_MSG_LEN);
+    memset(sense_err_msg, 0, sizeof(sense_err_msg));
     memset(data, 0, _SG_T10_SPC_MODE_SENSE_MAX_LEN);
 
     /* SPC-5 Table 171 - MODE SENSE(10) command */
@@ -1257,7 +1260,7 @@ static int _sg_log_sense(char *err_msg, int fd, uint8_t 
page_code,
     int ioctl_errno = 0;
     char strerr_buff[_LSM_ERR_MSG_LEN];
     uint8_t sense_key = _T10_SPC_SENSE_KEY_NO_SENSE;
-    char sense_err_msg[_LSM_ERR_MSG_LEN];
+    char sense_err_msg[_LSM_ERR_MSG_LEN / 2];
     struct _sg_t10_log_para_hdr *log_hdr = NULL;
     uint16_t log_data_len = 0;
 
@@ -1265,7 +1268,7 @@ static int _sg_log_sense(char *err_msg, int fd, uint8_t 
page_code,
     assert(fd >= 0);
     assert(data != NULL);
 
-    memset(sense_err_msg, 0, _LSM_ERR_MSG_LEN);
+    memset(sense_err_msg, 0, sizeof(sense_err_msg));
     memset(cdb, 0, _T10_SPC_LOG_SENSE_CMD_LEN);
 
     cdb[0] = LOG_SENSE;
@@ -1320,14 +1323,14 @@ int _sg_request_sense(char *err_msg, int fd, uint8_t 
*returned_sense_data)
     uint8_t sense_data[_T10_SPC_SENSE_DATA_MAX_LENGTH];
     int ioctl_errno = 0;
     uint8_t sense_key = _T10_SPC_SENSE_KEY_NO_SENSE;
-    char sense_err_msg[_LSM_ERR_MSG_LEN];
+    char sense_err_msg[_LSM_ERR_MSG_LEN / 2];
     char strerr_buff[_LSM_ERR_MSG_LEN];
 
     assert(err_msg != NULL);
     assert(fd >= 0);
     assert(returned_sense_data != NULL);
 
-    memset(sense_err_msg, 0, _LSM_ERR_MSG_LEN);
+    memset(sense_err_msg, 0, sizeof(sense_err_msg));
     memset(cdb, 0, _T10_SPC_REQUEST_SENSE_CMD_LEN);
 
     cdb[0] = REQUEST_SENSE;
diff --git a/c_binding/utils.h b/c_binding/utils.h
index 15d0c97..f63b6e3 100644
--- a/c_binding/utils.h
+++ b/c_binding/utils.h
@@ -23,7 +23,7 @@
 #include <stdio.h>
 #include <stdbool.h>
 
-#define _LSM_ERR_MSG_LEN                1024
+#define _LSM_ERR_MSG_LEN                4096
 
 #define _good(rc, rc_val, out) \
         do { \
diff --git a/plugin/simc/db.c b/plugin/simc/db.c
index 7b3613e..aad9f30 100644
--- a/plugin/simc/db.c
+++ b/plugin/simc/db.c
@@ -768,7 +768,7 @@ void _db_sql_trans_rollback(sqlite3 *db)
 int _db_data_add(char *err_msg, sqlite3 *db, const char *table_name, ...)
 {
     int rc = LSM_ERR_OK;
-    char sql_cmd[_BUFF_SIZE];
+    char sql_cmd[_BUFF_SIZE * 4];
     char keys_str[_BUFF_SIZE];
     char values_str[_BUFF_SIZE];
     const char *key_str = NULL;
diff --git a/plugin/simc/nfs_ops.c b/plugin/simc/nfs_ops.c
index 4d7235d..b8bcde5 100644
--- a/plugin/simc/nfs_ops.c
+++ b/plugin/simc/nfs_ops.c
@@ -159,7 +159,7 @@ int nfs_export_fs(lsm_plugin_ptr c, const char *fs_id, 
const char *export_path,
     uint64_t sim_fs_id = 0;
     uint64_t sim_exp_id = 0;
     char tmp_export_path[_BUFF_SIZE];
-    char vpd83[_BUFF_SIZE];
+    char vpd83[_VPD_83_LEN];
 
     _UNUSED(flags);
     _lsm_err_msg_clear(err_msg);
diff --git a/plugin/simc/san_ops.c b/plugin/simc/san_ops.c
index 57161ad..2c9fbde 100644
--- a/plugin/simc/san_ops.c
+++ b/plugin/simc/san_ops.c
@@ -1111,7 +1111,7 @@ int volume_unmask(lsm_plugin_ptr c, lsm_access_group 
*group, lsm_volume *volume,
     char err_msg[_LSM_ERR_MSG_LEN];
     char condition[_BUFF_SIZE];
     struct _vector *vec = NULL;
-    char sql_cmd_check_mask[_BUFF_SIZE];
+    char sql_cmd_check_mask[_BUFF_SIZE * 4];
 
      _UNUSED(flags);
     _lsm_err_msg_clear(err_msg);
diff --git a/plugin/simc/utils.h b/plugin/simc/utils.h
index 6914e59..90bb54a 100644
--- a/plugin/simc/utils.h
+++ b/plugin/simc/utils.h
@@ -36,7 +36,7 @@ struct _simc_private_data {
 
 #define _UNUSED(x) (void)(x)
 #define _MD5_HASH_STR_LEN               MD5_DIGEST_LENGTH * 2 + 1
-#define _LSM_ERR_MSG_LEN                    1024
+#define _LSM_ERR_MSG_LEN                4096
 
 #define _VPD_83_LEN                     17
 /* ^ 6h IEEE Registered ID which it 16 bits hex string. */
@@ -63,8 +63,8 @@ struct _simc_private_data {
 #define _snprintf_buff(err_msg, rc, out, buff, format, ...) \
     do { \
         if (buff != NULL) \
-            snprintf(buff, _BUFF_SIZE, format, ##__VA_ARGS__); \
-        if (strlen(buff) == _BUFF_SIZE - 1 ) { \
+            snprintf(buff, sizeof(buff)/sizeof(char), format, ##__VA_ARGS__); \
+        if (strlen(buff) == sizeof(buff)/sizeof(char) - 1 ) { \
             rc = LSM_ERR_PLUGIN_BUG; \
             _lsm_err_msg_set(err_msg, "Buff too small"); \
             goto out; \
diff --git a/python_binding/Makefile.am b/python_binding/Makefile.am
index 56a4710..cacb6a0 100644
--- a/python_binding/Makefile.am
+++ b/python_binding/Makefile.am
@@ -21,7 +21,8 @@ endif
 
 pyexec_LTLIBRARIES = lsm/_clib.la
 pyexecdir = $(pythondir)/lsm
-lsm__clib_la_CFLAGS = $(PYTHON_CFLAGS) -I$(top_srcdir)/c_binding/include
+lsm__clib_la_CFLAGS = $(PYTHON_CFLAGS) -I$(top_srcdir)/c_binding/include \
+                     -Wno-cast-function-type
 lsm__clib_la_SOURCES = lsm/_clib.c
 lsm__clib_la_LDFLAGS = $(PYTHON_LIBS) \
                       -module -avoid-version -export-symbols-regex \

Reply via email to