I can't answer... nor do I think I would be allowed to if I knew the
answer! Which I don't!


On Thu, May 29, 2014 at 10:22 AM, Piotr Stanczyk
<piotr.stanc...@gmail.com>wrote:

> btw - I'd be curious to know for the need of such env. From a practical
> p.o.v.
>
> Piotr
>
>
> On 29 May 2014 10:21, Piotr Stanczyk <piotr.stanc...@gmail.com> wrote:
>
>> Nice catch Chris, I will patch that up over the weekend.
>>
>> Piotr
>>
>>
>> On 29 May 2014 10:19, Christopher Horvath <blackenc...@gmail.com> wrote:
>>
>>> I'm in a crippled environment that explicitly disallows exceptions, and
>>> has modified underlying some (but not all) underlying libraries
>>> accordingly. I worked a bit to try to incorporate these restrictions into
>>> the fuzz tests, but ultimately gave up - I'm trusting that the fuzz tests
>>> will have been run elsewhere.
>>>
>>> Additionally, there's a bug in one of the main tests. In
>>> testMultiPartSharedAttributes.cpp, in the testHeaders function, the first
>>> call is to:
>>>
>>>     vector<Header> headers;
>>>     // expect this to fail - empty header list
>>>     testMultiPartOutputFileForExpectedFailure (headers,
>>>                                                fn,
>>>                                                "Header : empty header
>>> list passed");
>>>
>>> And then inside the testMultiPartOutputFileForExpectedFailure function,
>>> the code takes the address of the 0'th element of the vector, which is
>>> invalid for an empty vector, and throws an exception which is not caught:
>>>
>>>     try
>>>     {
>>>         remove(fn.c_str());
>>>         MultiPartOutputFile file(fn.c_str(), &headers[0],headers.size());
>>>         cerr << "ERROR -- " << failMessage << endl;
>>>         assert (false);
>>>     }
>>>     catch (const IEX_NAMESPACE::ArgExc & e)
>>>     {
>>>         // expected behaviour
>>>     }
>>>
>>> The &headers[0] is invalid on an empty list, and causes a test failure.
>>>
>>> I've just disabled this test locally - all other non-tests succeed.
>>>
>>>
>>>
>>> On Thu, May 29, 2014 at 10:06 AM, Chris Cox <c...@adobe.com> wrote:
>>>
>>>>
>>>> That could be because "new" is defined in the language as throwing an
>>>> exception if it fails to allocate memory.  Doing a NULL check after
>>>> "new"
>>>> would only be necessary if running in a crippled environment that does
>>>> not
>>>> support exceptions.
>>>>
>>>> Malloc/calloc/realloc should never throw, but return NULL if they fail
>>>> to
>>>> allocate memory.
>>>>
>>>>
>>>> Chris
>>>>
>>>>
>>>> On 5/28/14 11:57 PM, "Peter Hillman" <pet...@wetafx.co.nz> wrote:
>>>>
>>>> >
>>>> > The OpenEXR fuzz tests insert bytes into files to test what happens
>>>> with
>>>> > accidentally or maliciously damaged files.
>>>> > When a "length-of-attribute" field in the EXR Header is modified to be
>>>> > an extremely large number, the library will often attempt to allocate
>>>> a
>>>> > large amount of memory to load the supposedly large attribute. There's
>>>> > no standard place where this happens; each attribute type manages
>>>> > loading the values itself. The field storing type of the attribute may
>>>> > also become damaged, causing unusual behaviour.
>>>> >
>>>> > It seems like the OpenEXR library does rather assume that calls to
>>>> 'new'
>>>> > etc will throw exceptions if they fail, rather than nullptr testing.
>>>> > This is in the library itself, rather than the fuzz tests.
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > On 29/05/14 13:26, Nick wrote:
>>>> >> Are you saying you have a malloc implementation that crashes if it
>>>> can't
>>>> >> allocate due to not enough memory? Or are you saying that the fuzz
>>>> test
>>>> >> relies on an exception not a nullptr test? If the latter it would be
>>>> better
>>>> >> to modify the test to null test. If the former, what the heck?
>>>> >>
>>>> >> Fuzz tests generally are supposed to demonstrate that the library
>>>> can survive
>>>> >> malicious exploits like forced overruns or whatever through
>>>> malformed files.
>>>> >>
>>>> >> If you are crashing, it's a bad malloc, a bad test, or OpenEXR isn't
>>>> >> completely fuzz safe.
>>>> >>
>>>> >> Or this is a different use of the term fuzz testing that I am not
>>>> familiar
>>>> >> with ;)
>>>> >>
>>>> >> - Nick
>>>> >>
>>>> >> Sent from my iPhone
>>>> >>
>>>> >>> On May 28, 2014, at 15:01, "Christopher Horvath" <
>>>> blackenc...@gmail.com>
>>>> >>> wrote:
>>>> >>>
>>>> >>> Hey Folks,
>>>> >>>
>>>> >>> It seems like some of the fuzz tests are explicitly attempting to
>>>> fail by
>>>> >>> creating large allocations and catching exceptions from failed
>>>> memory
>>>> >>> allocations.  If you're working with a malloc library that has
>>>> exceptions
>>>> >>> turned off, this causes crashes...
>>>> >>>
>>>> >>> Is this the correct interpretation of how fuzzScanLines & fuzzFile
>>>> is
>>>> >>> intended to work?
>>>> >>>
>>>> >>> This seems to be testing that malloc throws correctly - which in my
>>>> case, it
>>>> >>> does not - I just want to make sure I can feel comfortable turning
>>>> these
>>>> >>> fuzz tests off for the future.
>>>> >>>
>>>> >>> Chris
>>>> >>>
>>>> >>> --
>>>> >>> I think this situation absolutely requires that a really futile and
>>>> stupid
>>>> >>> gesture be done on somebody's part. And we're just the guys to do
>>>> it.
>>>> >>> _______________________________________________
>>>> >>> Openexr-devel mailing list
>>>> >>> Openexr-devel@nongnu.org
>>>> >>> https://lists.nongnu.org/mailman/listinfo/openexr-devel
>>>> >> _______________________________________________
>>>> >> Openexr-devel mailing list
>>>> >> Openexr-devel@nongnu.org
>>>> >> https://lists.nongnu.org/mailman/listinfo/openexr-devel
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > Openexr-devel mailing list
>>>> > Openexr-devel@nongnu.org
>>>> > https://lists.nongnu.org/mailman/listinfo/openexr-devel
>>>>
>>>>
>>>
>>>
>>> --
>>> I think this situation absolutely requires that a really futile and
>>> stupid gesture be done on somebody's part. And we're just the guys to do
>>> it.
>>>
>>> _______________________________________________
>>> Openexr-devel mailing list
>>> Openexr-devel@nongnu.org
>>> https://lists.nongnu.org/mailman/listinfo/openexr-devel
>>>
>>>
>>
>


-- 
I think this situation absolutely requires that a really futile and stupid
gesture be done on somebody's part. And we're just the guys to do it.
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to