Hello community,

here is the log from the commit of package vdr for openSUSE:Factory checked in 
at 2019-05-13 14:52:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vdr (Old)
 and      /work/SRC/openSUSE:Factory/.vdr.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vdr"

Mon May 13 14:52:51 2019 rev:53 rq:702576 version:2.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/vdr/vdr.changes  2019-04-01 12:38:34.973920997 
+0200
+++ /work/SRC/openSUSE:Factory/.vdr.new.5148/vdr.changes        2019-05-13 
14:52:52.675142003 +0200
@@ -1,0 +2,12 @@
+Tue May  7 18:38:26 UTC 2019 - Stefan Seyfried <[email protected]>
+
+- add upstream patches:
+  * vdr-2.4.0-27-fix-mtd-map-sid.diff
+  * vdr-2.4.0-28-fix-mtd-checksum.diff
+  * vdr-2.4.0-29-fix-compiler-warning.diff
+  * vdr-2.4.0-30-fix-ci-sendanswer.diff
+  * vdr-2.4.0-31-fix-invalid-lock-sequence.diff
+  * vdr-2.4.0-32-fix-remote-timers-lstt-550.diff
+  * vdr-2.4.0-33-fix-compiler-warning-add-attr-packed.diff
+
+-------------------------------------------------------------------

New:
----
  vdr-2.4.0-27-fix-mtd-map-sid.diff
  vdr-2.4.0-28-fix-mtd-checksum.diff
  vdr-2.4.0-29-fix-compiler-warning.diff
  vdr-2.4.0-30-fix-ci-sendanswer.diff
  vdr-2.4.0-31-fix-invalid-lock-sequence.diff
  vdr-2.4.0-32-fix-remote-timers-lstt-550.diff
  vdr-2.4.0-33-fix-compiler-warning-add-attr-packed.diff

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

Other differences:
------------------
++++++ vdr.spec ++++++
--- /var/tmp/diff_new_pack.0zKZDB/_old  2019-05-13 14:52:53.659144480 +0200
+++ /var/tmp/diff_new_pack.0zKZDB/_new  2019-05-13 14:52:53.663144490 +0200
@@ -76,6 +76,13 @@
 Patch124:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-24-fix-drop-caps.diff
 Patch125:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-25-fix-channels-menu.diff
 Patch126:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-26-fix-shared-ca-pids.diff
+Patch127:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-27-fix-mtd-map-sid.diff
+Patch128:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-28-fix-mtd-checksum.diff
+Patch129:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-29-fix-compiler-warning.diff
+Patch130:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-30-fix-ci-sendanswer.diff
+Patch131:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-31-fix-invalid-lock-sequence.diff
+Patch132:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-32-fix-remote-timers-lstt-550.diff
+Patch133:       
ftp://ftp.tvdr.de/vdr/Developer/Patches/vdr-2.4/vdr-2.4.0-33-fix-compiler-warning-add-attr-packed.diff
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  doxygen
@@ -154,6 +161,13 @@
 %patch124 -p0
 %patch125 -p0
 %patch126 -p0
+%patch127 -p0
+%patch128 -p0
+%patch129 -p0
+%patch130 -p0
+%patch131 -p0
+%patch132 -p0
+%patch133 -p0
 #
 %patch1 -p1
 %patch2 -p1

++++++ vdr-2.4.0-27-fix-mtd-map-sid.diff ++++++
# Fixed mapping SIDs in MTD.
#
--- mtd.c       2017/10/31 12:16:39     5.0
+++ mtd.c       2019/05/05 13:56:46
@@ -224,7 +224,10 @@
 
 void MtdMapSid(uchar *p, cMtdMapper *MtdMapper)
 {
-  Poke13(p, MtdMapper->RealToUniqSid(Peek13(p)));
+  uint16_t RealSid = p[0] << 8 | p[1];
+  uint16_t UniqSid = MtdMapper->RealToUniqSid(RealSid);
+  p[0] = UniqSid >> 8;
+  p[1] = UniqSid & 0xff;
 }
 
 void MtdMapPid(uchar *p, cMtdMapper *MtdMapper)
++++++ vdr-2.4.0-28-fix-mtd-checksum.diff ++++++
# Fixed updating the checksum in the CA table after mapping EMM PIDs for MTD.
#
--- ci.c        2019/03/19 14:58:06     5.2
+++ ci.c        2019/05/05 14:15:56
@@ -225,7 +225,7 @@
            }
         else {
            esyslog("ERROR: buffer overflow in cCaPidReceiver::Receive()");
-           bufp = 0;
+           bufp = NULL;
            length = 0;
            }
         }
@@ -250,12 +250,22 @@
                i += p[i + 1] + 2 - 1; // -1 to compensate for the loop 
increment
                }
             }
+        if (MtdCamSlot) {
+           if (!bufp && length) {
+              // update crc32 - but only single packet CAT is handled for now:
+              uint32_t crc = SI::CRC32::crc32((const char *)p - 8, length + 8 
- 4, 0xFFFFFFFF); // <TableIdCAT....>[crc32]
+              uchar *c = const_cast<uchar *>(p + length - 4);
+              *c++ = crc >> 24;
+              *c++ = crc >> 16;
+              *c++ = crc >> 8;
+              *c++ = crc;
+              }
+           memcpy(mtdCatBuffer, Data, TS_SIZE);
+           MtdCamSlot->PutCat(mtdCatBuffer, TS_SIZE);
+           }
         p = NULL;
-        bufp = 0;
+        bufp = NULL;
         length = 0;
-        memcpy(mtdCatBuffer, Data, TS_SIZE);
-        if (MtdCamSlot)
-           MtdCamSlot->PutCat(mtdCatBuffer, TS_SIZE);
         }
      }
 }
++++++ vdr-2.4.0-29-fix-compiler-warning.diff ++++++
# Fixed a compiler warning in ExchangeChars().
#
--- recording.c 2019/03/19 15:56:58     5.2
+++ recording.c 2019/05/06 11:26:06
@@ -610,7 +610,7 @@
                              char buf[4];
                              sprintf(buf, "#%02X", (unsigned char)*p);
                              memmove(p + 2, p, strlen(p) + 1);
-                             strncpy(p, buf, 3);
+                             memcpy(p, buf, 3);
                              p += 2;
                              }
                           else
++++++ vdr-2.4.0-30-fix-ci-sendanswer.diff ++++++
# Fixed a compiler warning and a possible buffer overflow in 
cCiMMI::SendAnswer().
#
--- ci.c        2019/05/05 14:15:56     5.3
+++ ci.c        2019/05/06 11:47:42
@@ -1591,9 +1591,12 @@
   struct tAnswer { uint8_t id; char text[256]; };//XXX
   tAnswer answer;
   answer.id = Text ? AI_ANSWER : AI_CANCEL;
-  if (Text)
-     strncpy(answer.text, Text, sizeof(answer.text));
-  SendData(AOT_ANSW, Text ? strlen(Text) + 1 : 1, (uint8_t *)&answer);
+  int len = 0;
+  if (Text) {
+     len = min(sizeof(answer.text), strlen(Text));
+     memcpy(answer.text, Text, len);
+     }
+  SendData(AOT_ANSW, len + 1, (uint8_t *)&answer);
   return true;
 }
 
++++++ vdr-2.4.0-31-fix-invalid-lock-sequence.diff ++++++
# Fixed a possible invalid lock sequence if the main menu is open and the user
# switches to a channel that is currently not available, using the Channel+/- 
keys.
#
--- device.c    2018/07/16 09:29:57     5.1
+++ device.c    2019/05/06 13:10:36
@@ -831,7 +831,7 @@
            result = true;
         }
      else if (n != first)
-        Skins.Message(mtError, tr("Channel not available!"));
+        Skins.QueueMessage(mtError, tr("Channel not available!"));
      }
   return result;
 }
++++++ vdr-2.4.0-32-fix-remote-timers-lstt-550.diff ++++++
# Fixed handling remote timers in case the response to LSTT is '550 No timers 
defined'.
#
--- svdrp.c     2018/04/19 09:45:08     5.1
+++ svdrp.c     2019/05/06 15:11:15
@@ -508,9 +508,10 @@
          int Code = SVDRPCode(s);
          if (Code == 250)
             strshift(s, 4);
+         else if (Code == 550)
+            Response.Clear();
          else {
-            if (Code != 550)
-               esyslog("ERROR: %s: %s", ServerName(), s);
+            esyslog("ERROR: %s: %s", ServerName(), s);
             return false;
             }
          }
++++++ vdr-2.4.0-33-fix-compiler-warning-add-attr-packed.diff ++++++
# Fixed a compiler warning in cIndexFile::ConvertToPes() and added 
__attribute__((packed))
# to tIndexPes and tIndexTs.
#
--- recording.c 2019/05/06 11:26:06     5.3
+++ recording.c 2019/05/07 09:22:34
@@ -2498,14 +2498,14 @@
 #define MAXINDEXCATCHUP    8 // number of retries
 #define INDEXCATCHUPWAIT 100 // milliseconds
 
-struct tIndexPes {
+struct __attribute__((packed)) tIndexPes {
   uint32_t offset;
   uchar type;
   uchar number;
   uint16_t reserved;
   };
 
-struct tIndexTs {
+struct __attribute__((packed)) tIndexTs {
   uint64_t offset:40; // up to 1TB per file (not using off_t here - must 
definitely be exactly 64 bit!)
   int reserved:7;     // reserved for future use
   int independent:1;  // marks frames that can be displayed by themselves (for 
trick modes)
@@ -2640,7 +2640,7 @@
         IndexPes.type = uchar(IndexTs->independent ? 1 : 2); // I_FRAME : "not 
I_FRAME" (exact frame type doesn't matter)
         IndexPes.number = uchar(IndexTs->number);
         IndexPes.reserved = 0;
-        memcpy(IndexTs, &IndexPes, sizeof(*IndexTs));
+        memcpy((void *)IndexTs, &IndexPes, sizeof(*IndexTs));
         IndexTs++;
         }
 }

Reply via email to