• Show log

    Commit

  • Hash : d1bfe614
    Author : Julian Ganz
    Date : 2018-08-04T19:30:40

    parse: Do not initialize the content in context to NULL
    
    String operations in libgit2 are supposed to never receive `NULL`, e.g.
    they are not `NULL`-save. In the case of `git__linenlen()`, invocation
    with `NULL` leads to undefined behavior.
    
    In a `git_parse_ctx` however, the `content` field used in these
    operations was initialized to `NULL` if the `git_parse_ctx_init()` was
    called with `NULL` for `content` or `0` for `content_len`. For the
    latter case, the initialization function even contained some logic for
    initializing `content` with `NULL`.
    
    This commit mitigates triggering undefined behavior by rewriting the
    logic. Now `content` is always initialized to a non-null buffer. Instead
    of a null buffer, an empty string is used for denoting an empty buffer.