Hello community,

here is the log from the commit of package libiscsi for openSUSE:Factory 
checked in at 2020-11-10 13:38:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libiscsi (Old)
 and      /work/SRC/openSUSE:Factory/.libiscsi.new.11331 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libiscsi"

Tue Nov 10 13:38:50 2020 rev:15 rq:846196 version:1.19.0+git.20201023

Changes:
--------
--- /work/SRC/openSUSE:Factory/libiscsi/libiscsi.changes        2020-08-15 
21:19:00.731576485 +0200
+++ /work/SRC/openSUSE:Factory/.libiscsi.new.11331/libiscsi.changes     
2020-11-10 13:39:29.952468041 +0100
@@ -1,0 +2,17 @@
+Thu Nov  5 10:50:08 UTC 2020 - Martin Pluskal <mplus...@suse.com>
+
+- Update to version 1.19.0+git.20201023:
+  * test-tool: add COMPARE AND WRITE MiscompareSense test
+  * lib: parse Information fixed sense field
+  * lib: parse Information sense descriptor type
+  * lib: check length for sense key specific sense data descriptors
+  * lib: drop generic sense data descriptor VALID check
+  * test-tool: add version descriptor checks for more SBC-3 versions
+  * test-tool: Fix CmdSN tests
+  * test-tool/test_async_lu_reset_simple: Move an assert statement
+  * Remove an unused function from the iSER code
+  * test-tool: add LogoutDuringIOAsync test case
+  * test-tool: rename async write dispatch/complete counters
+  * pdu: fix use after free during cancellation
+
+-------------------------------------------------------------------

Old:
----
  libiscsi-1.19.0+git.20200812.obscpio

New:
----
  libiscsi-1.19.0+git.20201023.obscpio

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

Other differences:
------------------
++++++ libiscsi.spec ++++++
--- /var/tmp/diff_new_pack.r0tJKP/_old  2020-11-10 13:39:30.892466173 +0100
+++ /var/tmp/diff_new_pack.r0tJKP/_new  2020-11-10 13:39:30.896466166 +0100
@@ -18,7 +18,7 @@
 
 %define         sover 9
 Name:           libiscsi
-Version:        1.19.0+git.20200812
+Version:        1.19.0+git.20201023
 Release:        0
 Summary:        iSCSI client library and utilities
 License:        GPL-2.0-only AND LGPL-2.1-only
@@ -80,7 +80,6 @@
 %autosetup
 
 %build
-%global optflags %{optflags} -fcommon
 autoreconf -fiv
 %configure \
   --enable-manpages \

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.r0tJKP/_old  2020-11-10 13:39:30.948466062 +0100
+++ /var/tmp/diff_new_pack.r0tJKP/_new  2020-11-10 13:39:30.952466054 +0100
@@ -3,4 +3,4 @@
                 <param name="url">g...@github.com:sahlberg/libiscsi.git</param>
               <param 
name="changesrevision">e6bcdf5fdbf39729399c4f0914661ca1055107a1</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/sahlberg/libiscsi.git</param>
-              <param 
name="changesrevision">e9cefe7e421b19f9b984ff3fc8e76856cb439d14</param></service></servicedata>
\ No newline at end of file
+              <param 
name="changesrevision">957cc9623223dcbf9dcf7ee27455dabfb7bd29eb</param></service></servicedata>
\ No newline at end of file

++++++ libiscsi-1.19.0+git.20200812.obscpio -> 
libiscsi-1.19.0+git.20201023.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libiscsi-1.19.0+git.20200812/include/scsi-lowlevel.h 
new/libiscsi-1.19.0+git.20201023/include/scsi-lowlevel.h
--- old/libiscsi-1.19.0+git.20200812/include/scsi-lowlevel.h    2020-08-13 
05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/include/scsi-lowlevel.h    2020-10-24 
04:19:12.000000000 +0200
@@ -281,8 +281,10 @@
        unsigned            sense_specific:1;
        unsigned            ill_param_in_cdb:1;
        unsigned            bit_pointer_valid:1;
+       unsigned            info_valid:1;
        unsigned char       bit_pointer;
        uint16_t            field_pointer;
+       uint64_t            information;
 };
 
 struct scsi_data {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libiscsi-1.19.0+git.20200812/lib/iscsi-command.c 
new/libiscsi-1.19.0+git.20201023/lib/iscsi-command.c
--- old/libiscsi-1.19.0+git.20200812/lib/iscsi-command.c        2020-08-13 
05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/lib/iscsi-command.c        2020-10-24 
04:19:12.000000000 +0200
@@ -326,14 +326,21 @@
        const unsigned char *p, *const end = sb + sb_len;
 
        for (p = sb; p < end; p += p[1]) {
-               if (p[1] < 4) /* length */
-                       break;
-               if (!(p[2] & 0x80)) /* VALID bit */
+               uint8_t addl_len = p[1];
+               if (addl_len < 4)
                        break;
                switch (p[0]) {
+               case 0:
+                       /* Information descriptor with VALID flag */
+                       if (addl_len == 0x0a && p[2] & 0x80) {
+                               sense->info_valid = 1;
+                               sense->information = scsi_get_uint64(p + 4);
+                       }
+                       break;
                case 2:
                        /* Sense key specific sense data descriptor */
-                       parse_sense_spec(sense, p + 4);
+                       if (addl_len == 0x06)
+                               parse_sense_spec(sense, p + 4);
                        break;
                }
        }
@@ -347,6 +354,10 @@
        case 0x71:
                /* Fixed format */
                sense->key  = sb[2] & 0x0f;
+               if (sb[0] & 0x80) {     /* VALID */
+                       sense->info_valid = 1;
+                       sense->information = scsi_get_uint32(sb + 3);
+               }
                sense->ascq = scsi_get_uint16(&sb[12]);
                parse_sense_spec(sense, sb + 15);
                break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libiscsi-1.19.0+git.20200812/lib/iser.c 
new/libiscsi-1.19.0+git.20201023/lib/iser.c
--- old/libiscsi-1.19.0+git.20200812/lib/iser.c 2020-08-13 05:07:10.000000000 
+0200
+++ new/libiscsi-1.19.0+git.20201023/lib/iser.c 2020-10-24 04:19:12.000000000 
+0200
@@ -204,12 +204,6 @@
        return result;
 }
 
-static inline int
-iser_buf_chunk_contains(struct iser_buf_chunk *chunk, void *ptr) {
-       return ((unsigned char *)ptr >= chunk->buf &&
-               (unsigned char *)ptr < chunk->buf + DATA_BUFFER_CHUNK_SIZE);
-}
-
 static void
 iser_tx_desc_free(struct iscsi_context *iscsi, struct iser_tx_desc *tx_desc)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libiscsi-1.19.0+git.20200812/lib/pdu.c 
new/libiscsi-1.19.0+git.20201023/lib/pdu.c
--- old/libiscsi-1.19.0+git.20200812/lib/pdu.c  2020-08-13 05:07:10.000000000 
+0200
+++ new/libiscsi-1.19.0+git.20201023/lib/pdu.c  2020-10-24 04:19:12.000000000 
+0200
@@ -788,13 +788,11 @@
                        pdu->callback(iscsi, SCSI_STATUS_CANCELLED,
                                      NULL, pdu->private_data);
                }
-               iscsi->drv->free_pdu(iscsi, pdu);
                if (!(pdu->outdata.data[0] & ISCSI_PDU_IMMEDIATE) &&
                    (pdu->outdata.data[0] & 0x3f) != ISCSI_PDU_DATA_OUT) {
                        iscsi->cmdsn--;
                }
-
-
+               iscsi->drv->free_pdu(iscsi, pdu);
        }
        while ((pdu = iscsi->waitpdu)) {
                ISCSI_LIST_REMOVE(&iscsi->waitpdu, pdu);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/iscsi-test-cu.c 
new/libiscsi-1.19.0+git.20201023/test-tool/iscsi-test-cu.c
--- old/libiscsi-1.19.0+git.20200812/test-tool/iscsi-test-cu.c  2020-08-13 
05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/test-tool/iscsi-test-cu.c  2020-10-24 
04:19:12.000000000 +0200
@@ -68,6 +68,7 @@
         { "Simple", test_compareandwrite_simple },
         { "DpoFua", test_compareandwrite_dpofua },
         { "Miscompare", test_compareandwrite_miscompare },
+        { "MiscompareSense", test_compareandwrite_miscompare_sense },
         { "Unwritten", test_compareandwrite_unwritten },
         { "InvalidDataOutSize",
           test_compareandwrite_invalid_dataout_size },
@@ -593,6 +594,7 @@
 static CU_TestInfo tests_iscsi_tmf[] = {
         { "AbortTaskSimpleAsync", test_async_abort_simple },
         { "LUNResetSimpleAsync", test_async_lu_reset_simple },
+        { "LogoutDuringIOAsync", test_async_io_logout },
         CU_TEST_INFO_NULL
 };
 
@@ -1359,8 +1361,12 @@
 
         sbc3_support = 0;
         for (i = 0; i < 8; i++) {
-                if (inq->version_descriptor[i] == 0x04C0) {
-                        sbc3_support = 1;
+                switch (inq->version_descriptor[i]) {
+                        case 0x04C0: // SBC-3 (no version claimed)
+                        case 0x04C3: // SBC-3 T10/BSR INCITS 514 revision 35
+                        case 0x04C5: // SBC-3 T10/BSR INCITS 514 revision 36
+                        case 0x04C8: // SBC-3 ANSI INCITS 514-2014
+                                sbc3_support = 1;
                 }
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/iscsi-test-cu.h 
new/libiscsi-1.19.0+git.20201023/test-tool/iscsi-test-cu.h
--- old/libiscsi-1.19.0+git.20200812/test-tool/iscsi-test-cu.h  2020-08-13 
05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/test-tool/iscsi-test-cu.h  2020-10-24 
04:19:12.000000000 +0200
@@ -54,6 +54,7 @@
 void test_compareandwrite_simple(void);
 void test_compareandwrite_dpofua(void);
 void test_compareandwrite_miscompare(void);
+void test_compareandwrite_miscompare_sense(void);
 void test_compareandwrite_unwritten(void);
 void test_compareandwrite_invalid_dataout_size(void);
 
@@ -258,6 +259,7 @@
 void test_write10_dpofua(void);
 void test_write10_residuals(void);
 void test_async_write(void);
+void test_async_io_logout(void);
 
 void test_write12_simple(void);
 void test_write12_beyond_eol(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/test_async_lu_reset_simple.c 
new/libiscsi-1.19.0+git.20201023/test-tool/test_async_lu_reset_simple.c
--- old/libiscsi-1.19.0+git.20200812/test-tool/test_async_lu_reset_simple.c     
2020-08-13 05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/test-tool/test_async_lu_reset_simple.c     
2020-10-24 04:19:12.000000000 +0200
@@ -66,6 +66,7 @@
 
        /* command_data NULL if a reconnect occured. see iscsi_reconnect_cb() */
        reconnect_succeeded = command_data != NULL;
+       CU_ASSERT_EQUAL(reconnect_succeeded, 1);
        if (!reconnect_succeeded)
                return;
        tmf_response = *(uint32_t *)command_data;
@@ -153,9 +154,6 @@
                                    0xffffffff, 0,
                                    test_async_reset_cb, &state);
        CU_ASSERT_EQUAL(ret, 0);
-       CU_ASSERT_EQUAL(reconnect_succeeded, 1);
-       if (!reconnect_succeeded)
-               goto out;
 
        logging(LOG_VERBOSE, "LU RESET queued");
 
@@ -197,8 +195,6 @@
                CU_FAIL("unexpected WRITE/RESET state");
        }
 
-out:
-
        /* Avoid that callbacks get invoked after this test finished */
        iscsi_logout_sync(sd->iscsi_ctx);
        iscsi_destroy_context(sd->iscsi_ctx);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/test_async_write.c 
new/libiscsi-1.19.0+git.20201023/test-tool/test_async_write.c
--- old/libiscsi-1.19.0+git.20200812/test-tool/test_async_write.c       
2020-08-13 05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/test-tool/test_async_write.c       
2020-10-24 04:19:12.000000000 +0200
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) SUSE LINUX GmbH 2016
+   Copyright (C) SUSE LLC 2016-2020
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -27,9 +27,11 @@
 #include "iscsi-test-cu.h"
 
 struct tests_async_write_state {
-       uint32_t dispatched;
-       uint32_t completed;
+       uint32_t io_dispatched;
+       uint32_t io_completed;
        uint32_t prev_cmdsn;
+       uint32_t logout_sent;
+       uint32_t logout_cmpl;
 };
 
 static void
@@ -39,12 +41,19 @@
        struct scsi_task *atask = command_data;
        struct tests_async_write_state *state = private_data;
 
-       state->completed++;
+       if (state->logout_cmpl) {
+               CU_ASSERT_EQUAL(status, SCSI_STATUS_CANCELLED);
+               logging(LOG_VERBOSE, "WRITE10 cancelled after logout");
+               return;
+       }
+
+       state->io_completed++;
        logging(LOG_VERBOSE, "WRITE10 completed: %d of %d (CmdSN=%d)",
-               state->completed, state->dispatched, atask->cmdsn);
+               state->io_completed, state->io_dispatched, atask->cmdsn);
        CU_ASSERT_NOT_EQUAL(status, SCSI_STATUS_CHECK_CONDITION);
 
-       if ((state->completed > 1) && (atask->cmdsn != state->prev_cmdsn + 1)) {
+       if ((state->io_completed > 1)
+        && (atask->cmdsn != state->prev_cmdsn + 1)) {
                logging(LOG_VERBOSE,
                        "out of order completion (CmdSN=%d, prev=%d)",
                        atask->cmdsn, state->prev_cmdsn);
@@ -58,7 +67,7 @@
 test_async_write(void)
 {
        int i, ret;
-       struct tests_async_write_state state = { 0, 0, 0 };
+       struct tests_async_write_state state = { };
        int blocks_per_io = 8;
        int num_ios = 1000;
        /* IOs in flight concurrently, but all using the same src buffer */
@@ -97,12 +106,12 @@
                                               &state);
                CU_ASSERT_EQUAL(ret, 0);
 
-               state.dispatched++;
+               state.io_dispatched++;
                logging(LOG_VERBOSE, "WRITE10 dispatched: %d of %d (cmdsn=%d)",
-                       state.dispatched, num_ios, atask->cmdsn);
+                       state.io_dispatched, num_ios, atask->cmdsn);
        }
 
-       while (state.completed < state.dispatched) {
+       while (state.io_completed < state.io_dispatched) {
                struct pollfd pfd;
 
                pfd.fd = iscsi_get_fd(sd->iscsi_ctx);
@@ -117,3 +126,98 @@
 
        free(buf);
 }
+
+static void
+test_async_io_logout_cb(struct iscsi_context *iscsi __attribute__((unused)),
+                       int status, void *command_data __attribute__((unused)),
+                       void *private_data)
+{
+       struct tests_async_write_state *state = private_data;
+
+       state->logout_cmpl++;
+       logging(LOG_VERBOSE, "Logout completed with %d IOs outstanding",
+               state->io_dispatched - state->io_completed);
+       CU_ASSERT_EQUAL(status, SCSI_STATUS_GOOD);
+}
+
+void
+test_async_io_logout(void)
+{
+       int i, ret;
+       struct tests_async_write_state state = { };
+       int blocks_per_io = 8;
+       int num_ios = 10;
+       /* IOs in flight concurrently, but all using the same src buffer */
+       unsigned char *buf;
+
+       CHECK_FOR_DATALOSS;
+       CHECK_FOR_SBC;
+       CHECK_FOR_ISCSI(sd);
+
+       if (maximum_transfer_length
+        && maximum_transfer_length < (blocks_per_io * num_ios)) {
+               CU_PASS("[SKIPPED] device too small for async IO test");
+               return;
+       }
+
+       buf = calloc(block_size, blocks_per_io);
+       CU_ASSERT(buf != NULL);
+       if (!buf)
+               return;
+
+       iscsi_set_noautoreconnect(sd->iscsi_ctx, 1);
+
+       for (i = 0; i < num_ios; i++) {
+               uint32_t lba = i * blocks_per_io;
+               struct scsi_task *atask;
+
+               atask = scsi_cdb_write10(lba, blocks_per_io * block_size,
+                                        block_size, 0, 0, 0, 0, 0);
+               CU_ASSERT_PTR_NOT_NULL_FATAL(atask);
+
+               ret = scsi_task_add_data_out_buffer(atask,
+                                                   blocks_per_io * block_size,
+                                                   buf);
+               CU_ASSERT_EQUAL(ret, 0);
+
+               ret = iscsi_scsi_command_async(sd->iscsi_ctx, sd->iscsi_lun,
+                                              atask, test_async_write_cb, NULL,
+                                              &state);
+               CU_ASSERT_EQUAL(ret, 0);
+
+               state.io_dispatched++;
+               logging(LOG_VERBOSE, "WRITE10 dispatched: %d of %d (cmdsn=%d)",
+                       state.io_dispatched, num_ios, atask->cmdsn);
+       }
+
+       while (!state.logout_cmpl) {
+               struct pollfd pfd;
+
+               pfd.fd = iscsi_get_fd(sd->iscsi_ctx);
+               pfd.events = iscsi_which_events(sd->iscsi_ctx);
+
+               ret = poll(&pfd, 1, -1);
+               CU_ASSERT_NOT_EQUAL(ret, -1);
+
+               ret = iscsi_service(sd->iscsi_ctx, pfd.revents);
+               CU_ASSERT_EQUAL(ret, 0);
+
+               /* attempt logout after one of the dispatch IOs has completed */
+               if (!state.logout_sent && state.io_completed > 0) {
+                       ret = iscsi_logout_async(sd->iscsi_ctx,
+                                                test_async_io_logout_cb,
+                                                &state);
+                       CU_ASSERT_EQUAL(ret, 0);
+
+                       state.logout_sent++;
+                       logging(LOG_VERBOSE,
+                               "Logout dispatched following %d IO completions",
+                               state.io_completed);
+               }
+       }
+
+       iscsi_destroy_context(sd->iscsi_ctx);
+       sd->iscsi_ctx = iscsi_context_login(initiatorname1, sd->iscsi_url, 
&sd->iscsi_lun);
+       CU_ASSERT_PTR_NOT_NULL(sd->iscsi_ctx);
+       free(buf);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/test_compareandwrite_miscompare.c 
new/libiscsi-1.19.0+git.20201023/test-tool/test_compareandwrite_miscompare.c
--- 
old/libiscsi-1.19.0+git.20200812/test-tool/test_compareandwrite_miscompare.c    
    2020-08-13 05:07:10.000000000 +0200
+++ 
new/libiscsi-1.19.0+git.20201023/test-tool/test_compareandwrite_miscompare.c    
    2020-10-24 04:19:12.000000000 +0200
@@ -158,3 +158,79 @@
                 }
         }
 }
+
+void
+test_compareandwrite_miscompare_sense(void)
+{
+        unsigned i;
+
+        CHECK_FOR_DATALOSS;
+        CHECK_FOR_SBC;
+        CHECK_FOR_ISCSI(sd);
+
+        if (inq_bl->max_cmp < 1) {
+                logging(LOG_NORMAL, "[SKIPPED] COMPAREANDWRITE "
+                        "max_cmp less than 1.");
+                CU_PASS("[SKIPPED] single block COMPAREANDWRITE not supported "
+                        "Skipping test");
+                return;
+        }
+
+        logging(LOG_VERBOSE, LOG_BLANK_LINE);
+        logging(LOG_VERBOSE, "Test COMPARE_AND_WRITE of 1 block at the "
+                "start of the LUN");
+
+        logging(LOG_VERBOSE, "Write 1 block of 'A' at LBA:0");
+        memset(scratch, 'A', 2 * block_size);
+
+        WRITE16(sd, 0, block_size,
+                block_size, 0, 0, 0, 0, 0, scratch,
+                EXPECT_STATUS_GOOD);
+
+        memset(scratch + block_size, 'B', block_size);
+
+        logging(LOG_VERBOSE, "Overwrite blocks with 'B' "
+                "at LBA:0 (if they all contain 'A')");
+        COMPAREANDWRITE(sd, 0,
+                        scratch, 2 * block_size, block_size,
+                        0, 0, 0, 0,
+                        EXPECT_STATUS_GOOD);
+        /* we've confirmed that c&w is supported, time for the proper test... 
*/
+
+        logging(LOG_VERBOSE, "Vary location of miscompare in %zd bytes and 
check"
+                "sense", block_size);
+        memset(scratch + block_size, 'C', block_size);
+
+        for (i = 0; i < block_size; i++) {
+                struct scsi_task *tsk;
+                struct scsi_iovec iov;
+
+                logging(LOG_VERBOSE, "Fill buffer with 'B' except for %d "
+                        "offset", i);
+                memset(scratch, 'B', block_size);
+                scratch[i] = 'Z';
+
+                tsk = scsi_cdb_compareandwrite(0, 2 * block_size, block_size,
+                                                0, 0, 0, 0, 0);
+                CU_ASSERT(tsk != NULL);
+
+                iov.iov_base = scratch;
+                iov.iov_len  = 2 * block_size;
+                scsi_task_set_iov_out(tsk, &iov, 1);
+
+                tsk = iscsi_scsi_command_sync(sd->iscsi_ctx, sd->iscsi_lun,
+                                               tsk, NULL);
+                CU_ASSERT_FATAL(tsk != NULL);
+                CU_ASSERT(tsk->status == SCSI_STATUS_CHECK_CONDITION);
+                CU_ASSERT(tsk->sense.key == SCSI_SENSE_MISCOMPARE);
+                CU_ASSERT(tsk->sense.ascq
+                                == SCSI_SENSE_ASCQ_MISCOMPARE_DURING_VERIFY);
+                if (tsk->sense.info_valid) {
+                        logging(LOG_VERBOSE, "Check Information field provided"
+                                " with miscompare sense response");
+                        CU_ASSERT_EQUAL(tsk->sense.information, i);
+                }
+
+                scsi_free_scsi_task(tsk);
+        }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/test_iscsi_cmdsn_toohigh.c 
new/libiscsi-1.19.0+git.20201023/test-tool/test_iscsi_cmdsn_toohigh.c
--- old/libiscsi-1.19.0+git.20200812/test-tool/test_iscsi_cmdsn_toohigh.c       
2020-08-13 05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/test-tool/test_iscsi_cmdsn_toohigh.c       
2020-10-24 04:19:12.000000000 +0200
@@ -35,10 +35,12 @@
                 * iscsi_pdu_set_cmdsn(), which also changes pdu->cmdsn?
                 */
                 scsi_set_uint32(&pdu->outdata.data[24], iscsi->maxcmdsn + 1);
-                /* fudge the cmdsn value back to where it should be if this
-                 * pdu is ignored.
+                /*
+                 * Fudge the cmdsn value back to where it should be if this pdu
+                 * is ignored. The cmdsn value will be incremented by the
+                 * orig_queue_pdu(), so it's off by one.
                  */
-                iscsi->cmdsn = iscsi->expcmdsn;
+                iscsi->cmdsn = iscsi->expcmdsn - 1;
                 break;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libiscsi-1.19.0+git.20200812/test-tool/test_iscsi_cmdsn_toolow.c 
new/libiscsi-1.19.0+git.20201023/test-tool/test_iscsi_cmdsn_toolow.c
--- old/libiscsi-1.19.0+git.20200812/test-tool/test_iscsi_cmdsn_toolow.c        
2020-08-13 05:07:10.000000000 +0200
+++ new/libiscsi-1.19.0+git.20201023/test-tool/test_iscsi_cmdsn_toolow.c        
2020-10-24 04:19:12.000000000 +0200
@@ -35,10 +35,12 @@
                 * iscsi_pdu_set_cmdsn(), which also changes pdu->cmdsn?
                 */
                 scsi_set_uint32(&pdu->outdata.data[24], iscsi->expcmdsn - 1);
-                /* fudge the cmdsn value back to where it should be if this
-                 * pdu is ignored.
+                /*
+                 * Fudge the cmdsn value back to where it should be if this pdu
+                 * is ignored. The cmdsn value will be incremented by the
+                 * orig_queue_pdu(), so it's off by one.
                  */
-                iscsi->cmdsn = iscsi->expcmdsn;
+                iscsi->cmdsn = iscsi->expcmdsn - 1;
                 break;
         }
 

++++++ libiscsi.obsinfo ++++++
--- /var/tmp/diff_new_pack.r0tJKP/_old  2020-11-10 13:39:31.172465617 +0100
+++ /var/tmp/diff_new_pack.r0tJKP/_new  2020-11-10 13:39:31.172465617 +0100
@@ -1,5 +1,5 @@
 name: libiscsi
-version: 1.19.0+git.20200812
-mtime: 1597288030
-commit: e9cefe7e421b19f9b984ff3fc8e76856cb439d14
+version: 1.19.0+git.20201023
+mtime: 1603505952
+commit: bc83b0ddb01aa24170c6cb54e3fab4e9a30df77d
 


Reply via email to