diff options
| author | Julian Ganz <neither@nut.email> | 2018-08-04 19:30:40 +0200 |
|---|---|---|
| committer | Julian Ganz <neither@nut.email> | 2018-08-04 19:47:41 +0200 |
| commit | d1bfe614aa20a0bdaf76c6d418176320ab11baf4 (patch) | |
| tree | 0f7a2c9c523002284f7b17ade82c0f6f2933d53c /src/worktree.c | |
| parent | 64138b70e10b9812af8f944e83747aa51da9a920 (diff) | |
| download | libgit2-d1bfe614aa20a0bdaf76c6d418176320ab11baf4.tar.gz | |
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.
Diffstat (limited to 'src/worktree.c')
0 files changed, 0 insertions, 0 deletions
