Which test case was failing? It's possible the test case is no longer included in the feature-openssl branch. I pulled out all the legacy crypto and math from libsrtp in that branch. Have you confirmed the failing test case is still run under the feature-openssl branch?
On 07/18/2013 01:42 PM, Daniel Pocock wrote: > > Further observation: the feature-openssl branch from git does not have > the bus error, test cases run successfully on SPARC > > > > > > On 18/07/13 19:34, Daniel Pocock wrote: >> On 18/07/13 17:26, John Foley wrote: >>> We've seen BUS errors on some platforms. I'm not confident the >>> following patch was ever pushed back to libsrtp. There's a chance this >>> may resolve the problem on sparc. Unfortunately I don't have a sparc >>> system to try this myself. >> >> >> Thanks for this feedback >> >> The patch doesn't apply - all but one hunk fails >> >> I tried it against the Debian source package and I also tried >> applying it against the repository >> >> https://github.com/cisco/libsrtp >> >> Can you tell me the SVN URL where you got this and I can try checking >> it out and building it? >> >> >> >> >>> Modified: branches/proto/libsrtp_30/srtp/include/srtp.h >>> =================================================================== >>> --- branches/proto/libsrtp_30/srtp/include/srtp.h 2013-04-24 19:44:23 UTC >>> (rev 1292) >>> +++ branches/proto/libsrtp_30/srtp/include/srtp.h 2013-04-29 14:17:03 UTC >>> (rev 1293) >>> @@ -52,6 +52,11 @@ >>> >>> #ifdef _MSC_VER >>> #pragma pack(4) >>> +#define PACK >>> +#elif defined(__GNUC__) >>> +#define PACK __attribute__ ((packed)) >>> +#else >>> +#define PACK >>> #endif >>> >>> #include "crypto_kernel.h" >>> >>> Modified: branches/proto/libsrtp_30/srtp/include/srtp_priv.h >>> =================================================================== >>> --- branches/proto/libsrtp_30/srtp/include/srtp_priv.h 2013-04-24 >>> 19:44:23 UTC (rev 1292) >>> +++ branches/proto/libsrtp_30/srtp/include/srtp_priv.h 2013-04-29 >>> 14:17:03 UTC (rev 1293) >>> @@ -68,7 +68,7 @@ >>> * fully pack the bit fields. >>> */ >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned char cc : 4; /* CSRC count */ >>> unsigned char x : 1; /* header extension flag */ >>> unsigned char p : 1; /* padding flag */ >>> @@ -82,7 +82,7 @@ >>> >>> #else /* BIG_ENDIAN */ >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned char version : 2; /* protocol version */ >>> unsigned char p : 1; /* padding flag */ >>> unsigned char x : 1; /* header extension flag */ >>> @@ -96,7 +96,7 @@ >>> >>> #endif >>> >>> -typedef struct { >>> +typedef struct PACK { >>> uint16_t profile_specific; /* profile-specific info */ >>> uint16_t length; /* number of 32-bit words in extension */ >>> } srtp_hdr_xtnd_t; >>> @@ -111,7 +111,7 @@ >>> >>> #ifndef WORDS_BIGENDIAN >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned char rc : 5; /* reception report count */ >>> unsigned char p : 1; /* padding flag */ >>> unsigned char version : 2; /* protocol version */ >>> @@ -120,7 +120,7 @@ >>> uint32_t ssrc; /* synchronization source */ >>> } srtcp_hdr_t; >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned int index : 31; /* srtcp packet index in network order! */ >>> unsigned int e : 1; /* encrypted? 1=yes */ >>> /* optional mikey/etc go here */ >>> @@ -130,7 +130,7 @@ >>> >>> #else /* BIG_ENDIAN */ >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned char version : 2; /* protocol version */ >>> unsigned char p : 1; /* padding flag */ >>> unsigned char rc : 5; /* reception report count */ >>> @@ -139,7 +139,7 @@ >>> uint32_t ssrc; /* synchronization source */ >>> } srtcp_hdr_t; >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned int version : 2; /* protocol version */ >>> unsigned int p : 1; /* padding flag */ >>> unsigned int count : 5; /* varies by packet type */ >>> @@ -147,7 +147,7 @@ >>> uint16_t length; /* len of uint32s of packet less header */ >>> } rtcp_common_t; >>> >>> -typedef struct { >>> +typedef struct PACK { >>> unsigned int e : 1; /* encrypted? 1=yes */ >>> unsigned int index : 31; /* srtcp packet index */ >>> /* optional mikey/etc go here */ >>> >>> >>> >>> On 07/18/2013 10:51 AM, Jonathan Lennox wrote: >>>> Sparc failing with "Bus Error" usually indicates an unaligned access. >>>> Other platforms tolerate this, but at some performance cost, so it's good >>>> to get rid of it across the board. I wouldn't expect it to be a security >>>> vulnerability. >>>> >>>> Can you pull the current GIT repo to see if it fails the same way? >>>> >>>> On Jul 18, 2013, at 7:47 AM, Daniel Pocock <dan...@pocock.com.au> wrote: >>>> >>>>> There is a long outstanding bug in Debian for sparc, specifically, bus >>>>> error in the test cases: >>>>> >>>>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628583 >>>>> >>>>> While the error only appears on sparc it may be indicative of other >>>>> problems >>>>> >>>>> Given concern about the recent CVE-2013-2139 (buffer overflow) it might >>>>> also be helpful to try and correct things like this that suggest some >>>>> coding issues still exist >>>>> >>>>> Has anybody already looked at the issue in the past? Does the stack >>>>> trace suggest any particular problem? >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> See everything from the browser to the database with AppDynamics >>>>> Get end-to-end visibility with application monitoring from AppDynamics >>>>> Isolate bottlenecks and diagnose root cause in seconds. >>>>> Start your free trial of AppDynamics Pro today! >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >>>>> _______________________________________________ >>>>> Srtp-development mailing list >>>>> srtp-developm...@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/srtp-development >>>> -- >>>> Jonathan Lennox >>>> jonat...@vidyo.com >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> See everything from the browser to the database with AppDynamics >>>> Get end-to-end visibility with application monitoring from AppDynamics >>>> Isolate bottlenecks and diagnose root cause in seconds. >>>> Start your free trial of AppDynamics Pro today! >>>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Srtp-development mailing list >>>> srtp-developm...@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/srtp-development >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> See everything from the browser to the database with AppDynamics >>> Get end-to-end visibility with application monitoring from AppDynamics >>> Isolate bottlenecks and diagnose root cause in seconds. >>> Start your free trial of AppDynamics Pro today! >>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >>> >>> >>> _______________________________________________ >>> Srtp-development mailing list >>> srtp-developm...@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/srtp-development >> >> >> >> ------------------------------------------------------------------------------ >> See everything from the browser to the database with AppDynamics >> Get end-to-end visibility with application monitoring from AppDynamics >> Isolate bottlenecks and diagnose root cause in seconds. >> Start your free trial of AppDynamics Pro today! >> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >> >> >> _______________________________________________ >> Srtp-development mailing list >> srtp-developm...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/srtp-development >
<<attachment: foleyj.vcf>>