Public bug reported:

Ubuntu release: 12.04
Package version: 0.1.33

When parsing fields in a crash report file, whoopsie will reallocate the
value buffer when appending continuation lines. The current length of
the buffer is computed by pointer arithmetic and the result stored in a
signed integer. If the field value length reaches 2GB, then this value
will overflow, and become negative. This will then cause whoopsie itself
to abort, as it tries to allocate a huge amount of memory.

I would expect whoopsie to cope with such large input (which may be
generated as the result of a memory-hungry process crashing and creating
a very large compressed+base64-encoded CoreDump).

By inspection, I see that this issue is still present in current
development versions: http://bazaar.launchpad.net/~ubuntu-
branches/ubuntu/vivid/whoopsie/vivid/view/head:/src/whoopsie.c#L402

I've attached a patch (created against the 0.1.33 sources, but should
apply with minimal issues against later versions), that resolves the
immediate issue. There's a more general question about the sanity of
loading the entire crash file into memory, too (particularly as the
CoreDump is never used unless the server requests it).

** Affects: whoopsie (Ubuntu)
     Importance: Undecided
         Status: New

** Patch added: "whoopsie.patch"
   
https://bugs.launchpad.net/bugs/1397340/+attachment/4270149/+files/whoopsie.patch

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1397340

Title:
  Integer overflow when processing giant field values

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/whoopsie/+bug/1397340/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to