Skip to content
Branch: master
Commits on Dec 23, 2018
  1. elf: make offset pages writeable

    Snaipe committed Dec 23, 2018
    This fixes crashes with eager GOT population, where the interpreter
    makes the table read-only when done.
  2. plt,elf: search for GOT entry in both JMPREL and REL/RELA

    Snaipe committed Dec 23, 2018
    We previously only searched in JMPREL, but this broke on
    some platforms where GOT entries are in REL instead.
    Fixes #6.
Commits on Jul 31, 2017
  1. release: v0.3.0

    Snaipe committed Jul 30, 2017
Commits on Jul 29, 2017
  1. win32: fixed vfprintf not being found for vitals.

    Snaipe committed Jul 29, 2017
    Since the Universal CRT was introduced, vfprintf may no longer be
    included in the runtime dll, but may be defined as an inline function
    that calls __stdio_common_vfprintf instead.
    Since the vitals.c code was searching for the vfprintf function, aborting
    if not found, it was crashing under windows versions shipping UCRT. We now
    search for __stdio_common_vfprintf as a fallback.
Commits on Jul 13, 2017
  1. freebsd: make the base address adjustment work for PIEs.

    Snaipe committed Jul 13, 2017
    Hardcoding 0x400000 is just a bad decision all around -- we now
    simply compare that the link_map entry is the first one to
    determine whether the entry is the main loaded object.
  2. elf: get the name of loaded objects through DT_SONAME.

    Snaipe committed Jul 13, 2017
    Getting the name through l_name is unreliable as some
    libc implementations choose to make it empty for a few
    We now read the name in the DT_SONAME entry of the loaded
    object's dynamic segment as a fallback mechanism.
  3. elf: make r_debug fallback discovery work for PIEs

    Snaipe committed Jul 13, 2017
    The base address that lives in the auxilliary vector for the main
    dynamic object is completely wrong when the executable is a PIE.
    Iterating through the loaded objects with dl_iterate_phdr is the
    "official" way of getting to the dynamic segment.
  4. test: added more correctness checks

    Snaipe committed Jul 13, 2017
    In particular, we now check the correct relationship between .times,
    .at_least, .at_most, and .never for each exact call counts.
  5. verify: ignore zero .times values

    Snaipe committed Jul 13, 2017
    This is more consistent with the current behaviour of .at_{most,least}
    and .never.
    Users that want to explicitely check for the function being called
    0 times must now use `.never = 1`.
  6. mock,api: use comparison operators rather than mmk_memcmp

    Snaipe committed Jul 13, 2017
    mmk_memcmp might have been a good idea in theory.
    That is, if you don't account for endianness.
    We now use regular comparison operators.  This means that users can't use
    comparison matchers with types that doesn't implement those operators,
    but in practice this is exactly what mmk_that is for, so we choose
    correctness over genericity.
  7. matchers: fix mmk_that not working

    Snaipe committed Jul 13, 2017
    The broken code tried to stuff the predicate after the matcher
    structure, which could have worked if we didn't actually copy the
    matcher struct internally, dropping the predicate pointer.  What we
    ended up with was pure garbage.
    Now, we do it the "proper" way, by introducing a data pointer in the
    matcher structure.
  8. matchers: rename neq,leq,geq to ne,le,ge

    Snaipe committed Jul 13, 2017
    2-character comparison matchers are more in-line with the others: eq,
    lt, gt.
    This is also to be somewhat consistent with the new Criterion assert API.
  9. matchers: fixed comparison matchers always matching for equality

    Snaipe committed Jul 13, 2017
    A typo sneaked in the generated mock, and the stub function would always
    compare the parameter with itself, instead of the bound parameter,
    resulting in it always matching if the eq bit was on.
Commits on Nov 19, 2016
  1. readme: Added gitter room badge

    Snaipe committed Nov 19, 2016
Commits on Nov 1, 2016
  1. readme: Updated links to diacritic

    Snaipe committed Nov 1, 2016
Commits on Aug 10, 2016
  1. cmake: Added install rule

    Snaipe committed Aug 10, 2016
  2. selector: Fixed "self" selector not working

    Snaipe committed Aug 10, 2016
Commits on Jun 29, 2016
Commits on Jun 28, 2016
  1. readme: Clarified in the warning that things will break

    Snaipe committed Jun 28, 2016
  2. readme: Fixed travis badge not displaying

    Snaipe committed Jun 28, 2016
Commits on May 18, 2016
  1. api: Changed value of MMK_MATCHER_BIT_CMP to be in the range of signe…

    Snaipe committed May 18, 2016
    …d int. Fixes #1
Commits on Apr 30, 2016
  1. plt-elf: Made auxval querying optional when r_debug is exported

    Snaipe committed Apr 30, 2016
  2. travis: Fix typo in allow_failures

    Snaipe committed Apr 30, 2016
  3. travis: Removed unused global env key

    Snaipe committed Apr 30, 2016
  4. api: Don't use a compound literal for reg_params

    Snaipe committed Apr 30, 2016
  5. core: Marked mmk_panic with noreturn for correctness

    Snaipe committed Apr 30, 2016
  6. travis: Added coverity-only job

    Snaipe committed Apr 30, 2016
  7. travis: Added coverity addon

    Snaipe committed Apr 30, 2016
Commits on Apr 29, 2016
  1. travis: Remove aarch64 builds from the trusty beta

    Snaipe committed Apr 29, 2016
    The libc6 package for AArch64 that wasn't previously available is now
    whitelisted (See #2812)
Commits on Apr 27, 2016
  1. appveyor: Don't install base-devel for faster builds

    Snaipe committed Apr 27, 2016
You can’t perform that action at this time.