Closed Bug 1110359 Opened 10 years ago Closed 10 years ago

Invalid write of size 4 in clone() on browser shutdown

Categories

(Firefox :: Untriaged, defect)

34 Branch
x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: mitchwharper, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0 Build ID: 20141210200223 Steps to reproduce: Was attempting to repro other bugs, browser started hanging so I killed Valgrind, and as it was closing I got this complaint. As it's on shutdown it might not be a big concern. Ran 34.0.5 through `G_SLICE=always-malloc valgrind --tool=memcheck --vex-iropt-register-updates=allregs-at-mem-access --smc-check=all-non-file ./firefox` built with mozconfig mk_add_options MOZ_MAKE_FLAGS="-j4" mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-g ac_add_options --disable-tests ac_add_options --enable-optimize="-g -Og" ac_add_options --disable-jemalloc ac_add_options --enable-valgrind ac_add_options --enable-debug-symbols Actual results: Valgrind complaint (attached is a longer trace with thread status): ==13706== Thread 46 Shutdow~minator: ==13706== Invalid write of size 4 ==13706== at 0x99F6E3B: mozilla::(anonymous namespace)::Run(void*) (nsTerminator.cpp:101) ==13706== by 0x646CE63: _pt_root (ptthread.c:212) ==13706== by 0x4E3F181: start_thread (pthread_create.c:312) ==13706== by 0x595E00C: clone (clone.S:111) ==13706== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==13706== ==13706== Unsupported clone() flags: 0x800600 ==13706== ==13706== The only supported clone() uses are: ==13706== - via a threads library (LinuxThreads or NPTL) ==13706== - via the implementation of fork or vfork ==13706== ==13706== Valgrind detected that your program requires ==13706== the following unimplemented functionality: ==13706== Valgrind does not support general clone(). ==13706== This may be because the functionality is hard to implement, ==13706== or because no reasonable program would behave this way, ==13706== or because nobody has yet needed it. In any case, let us know at ==13706== www.valgrind.org and/or try to work around the problem, if you can. ==13706== ==13706== Valgrind has to exit now. Sorry. Bye! ==13706==
Yoric, do you know more about what's going on here? It doesn't sound serious / sec-sensitive to me - more like a valgrind bug, but I'd prefer to be sure. :-)
Flags: needinfo?(dteller)
Well, this is a use of clone() by thread spawning, so this looks like a valgrind bug indeed. I'm just surprised that it doesn't show up anywhere else in our code. I don't think it's serious / sec-sensitive at all.
Flags: needinfo?(dteller)
Resolving. Please reopen if you have evidence something actually wrong is going on. :-)
Group: core-security
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Resolution: --- → INVALID
OK, I just saw the attempt to write to 0x0 inside the clone method and wanted to make sure there wasn't some sort of use-after-free going on.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: