[parrot/parrot] 769078: [imcc] fix end in methods GH #1168

GitHub noreply at github.com
Sat Jan 10 19:26:59 UTC 2015


  Branch: refs/heads/smoke-me/afl-crash-gh1168
  Home:   https://github.com/parrot/parrot
  Commit: 7690786febd6777e00ba43c9c26a37778accc3c5
      https://github.com/parrot/parrot/commit/7690786febd6777e00ba43c9c26a37778accc3c5
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-10 (Sat, 10 Jan 2015)

  Changed paths:
    M ChangeLog
    M compilers/imcc/pcc.c
    M src/ops/core.ops

  Log Message:
  -----------
  [imcc] fix end in methods GH #1168

This is the last fix for all afl-fuzz detected crashes.

And `end` op inside a user-defined method will exit a runloop unproperly.
The old ctx will be corrupted. Replace it with an equivalent `returncc` op,
which does set the continuation and context properly to end the current runloop.

`exit` would be an alternative, but we documented `end` to halt the interpreter,
which is fresh inside certain runloops. I documented this case as unspecified behaviour.
It crashed before, now it returns.




More information about the parrot-commits mailing list