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++; } }
