Hi Release Team, Frank and I would like to see RC bug #926103 fixed in Debian 10. Please approve the attached debdiff, so that I can upload the fixed package to unstable.
Thank you for your consideration. Best, Reinhard
diff -Nru pcsc-cyberjack-3.99.5final.sp09/debian/changelog pcsc-cyberjack-3.99.5final.sp09/debian/changelog --- pcsc-cyberjack-3.99.5final.sp09/debian/changelog 2017-05-29 14:33:13.000000000 -0400 +++ pcsc-cyberjack-3.99.5final.sp09/debian/changelog 2019-04-08 17:58:31.000000000 -0400 @@ -1,3 +1,11 @@ +pcsc-cyberjack (3.99.5final.sp09-2) unstable; urgency=medium + + * Acknoledge NMU. + * Bug fix: "driver breaks with pcsc-lite versions >= 1.8.21", thanks + to Peter Wienemann (Closes: #926103). + + -- Reinhard Tartler <siret...@tauware.de> Mon, 08 Apr 2019 17:58:31 -0400 + pcsc-cyberjack (3.99.5final.sp09-1.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru pcsc-cyberjack-3.99.5final.sp09/debian/patches/series pcsc-cyberjack-3.99.5final.sp09/debian/patches/series --- pcsc-cyberjack-3.99.5final.sp09/debian/patches/series 2017-05-29 14:33:11.000000000 -0400 +++ pcsc-cyberjack-3.99.5final.sp09/debian/patches/series 2019-04-08 17:58:31.000000000 -0400 @@ -1 +1,2 @@ enable_pinpad_ecom.patch +work-with-newer-pcsc-lite.patch diff -Nru pcsc-cyberjack-3.99.5final.sp09/debian/patches/work-with-newer-pcsc-lite.patch pcsc-cyberjack-3.99.5final.sp09/debian/patches/work-with-newer-pcsc-lite.patch --- pcsc-cyberjack-3.99.5final.sp09/debian/patches/work-with-newer-pcsc-lite.patch 1969-12-31 19:00:00.000000000 -0500 +++ pcsc-cyberjack-3.99.5final.sp09/debian/patches/work-with-newer-pcsc-lite.patch 2019-04-08 17:58:31.000000000 -0400 @@ -0,0 +1,58 @@ +commit 8ab61acfa0a8efc3c65098d4c621d761b7e05da1 +Author: Frank Neuber <f...@kernelport.com> +Date: Fri Apr 27 11:09:24 2018 +0200 + + correct the large buffer problem with newer versions of pcscd + +--- a/cjeca32/EC30Reader.cpp ++++ b/cjeca32/EC30Reader.cpp +@@ -162,21 +162,23 @@ CJ_RESULT CEC30Reader::CtApplicationData + { + int Res; + uint32_t Len; +- uint16_t wLenRsp=0; +- uint16_t wLenErr=0; ++ uint32_t wLenRsp=0; ++ uint32_t wLenErr=0; + if(ResponseLen!=0) +- wLenRsp=(uint16_t)*ResponseLen; ++ wLenRsp=*ResponseLen; + if(ApplicationErrorLength!=NULL) +- wLenErr=(uint16_t)*ApplicationErrorLength; +- if(m_nApplicationResponseLength<(uint32_t)wLenRsp+wLenErr+4) ++ wLenErr=*ApplicationErrorLength; ++ Len=4+wLenRsp+wLenErr; ++ if(m_nApplicationResponseLength<Len) + { + if(m_pApplicationResponse!=NULL) + delete m_pApplicationResponse; +- m_nApplicationResponseLength=wLenRsp+wLenErr+4+1024; ++ m_nApplicationResponseLength=Len+1024; + m_pApplicationResponse=new uint8_t[m_nApplicationResponseLength]; + } +- Len=4+wLenRsp+wLenErr; + ++ if (Len>0xFFFFFFFB) // overflow or bigger than 0xFFFFFFFF - 4 ++ return CJ_ERR_WRONG_PARAMETER; + + if((Res=Escape(ApplicationID,Function,InputData,InputLen,Result,m_pApplicationResponse,&Len,Slot))) + { +@@ -186,10 +188,14 @@ CJ_RESULT CEC30Reader::CtApplicationData + *ApplicationErrorLength=0; + return Res; + } +- memcpy(&wLenRsp,m_pApplicationResponse,sizeof(wLenRsp)); +- wLenRsp=ReaderToHostShort(wLenRsp); +- memcpy(&wLenErr,m_pApplicationResponse+2,sizeof(wLenErr)); +- wLenErr=ReaderToHostShort(wLenErr); ++ ++ uint16_t wLenRsp16 = 0; ++ uint16_t wLenErr16 = 0; ++ memcpy(&wLenRsp16,m_pApplicationResponse,sizeof(wLenRsp16)); ++ wLenRsp=ReaderToHostShort(wLenRsp16); ++ memcpy(&wLenErr16,m_pApplicationResponse+2,sizeof(wLenErr16)); ++ wLenErr=ReaderToHostShort(wLenErr16); ++ + if(ApplicationErrorLength) + { + if(wLenErr>*ApplicationErrorLength)