Age | Commit message (Collapse) | Author |
|
When I first starting looking into different ways to stream audio into Pd, I
spent a little bit of time looking at streamin~/streamout~. While looking at
it, I fixed the security issue from the previous commit, and made the following
updates to stream.h.
- Adding doxygen style comments.
- Add an ifdef to prevent against multiple or recursive includes of the header.
- Document most of the fields in the defined data structures.
- Fix potential alignment bugs (at least on platforms using GNUC) by using the
packed attribute for structures defining network frames.
See http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Variable-Attributes.html#Variable%20Attributes
- Point out the fact that this code is not endianness-safe, and that it should
eventually be updated to respect network byte order.
- Point out that the version field of the frame header is ignored when parsing
incoming frames.
- Change a list of #defines to an enum.
- Instead of using "int" in the frame header structure, use int32_t to explicitly
state that the field is 32-bits.
svn path=/trunk/externals/ggee/; revision=9134
|
|
streamin~ was vulnerable to a remotely exploitable heap buffer overflow that
could potentially allow an attacker to execute arbitrary code on a machine
that is using streamin~. The issue is that the defined frame header includes
a field for frame size which indicates how much additional data is available.
However, this frame size was not checked to ensure that it was smaller than
the size of the buffer that was allocated to store this data.
(one of my patches from issue #1848356)
svn path=/trunk/externals/ggee/; revision=9133
|
|
svn path=/trunk/externals/ggee/; revision=7890
|
|
svn path=/trunk/externals/ggee/; revision=3910
|
|
changing the define from NT to _MSC_VER
svn path=/trunk/externals/ggee/; revision=3903
|
|
svn path=/trunk/externals/ggee/; revision=3070
|
|
svn path=/trunk/externals/ggee/; revision=2581
|
|
svn path=/trunk/externals/ggee/; revision=2580
|
|
svn path=/trunk/externals/ggee/; revision=1971
|
|
svn path=/trunk/externals/ggee/; revision=1940
|
|
svn path=/trunk/externals/ggee/; revision=1939
|
|
svn path=/trunk/externals/ggee/; revision=1923
|
|
svn path=/trunk/externals/ggee/; revision=1161
|
|
svn path=/trunk/externals/ggee/; revision=750
|
|
svn path=/trunk/externals/ggee/; revision=689
|
|
svn path=/trunk/externals/ggee/; revision=584
|
|
streamin ??)
svn path=/trunk/externals/ggee/; revision=454
|
|
svn path=/trunk/externals/ggee/; revision=197
|
|
svn path=/trunk/externals/ggee/; revision=53
|
|
which included commits to RCS files with non-trunk default branches.
svn path=/trunk/externals/ggee/; revision=13
|