libgit2/libgit2 — pull request #1771 by nvloff (2013-08-08 18:42:22+00:00)
Title: config: allow empty setting string as value

I was writing some submodule tests for Rugged and I noticed that I can't set the url for a submodule to `''`.

I'm not that familiar with `git_buf` and there may be something obvious that I'm missing...

`git_config_set_string(config, "config.section", "")` fails when
escaping the value.

The buffer in `escape_value` is allocated without NULL-termination. And
in case of empty string - 0 is passed for buffer size in `git_buf_grow`.

`git_buf_detach` returns NULL when the allocated size is 0 and that
leads to an error return in `GITERR_CHECK_ALLOC` called after
`escape_value`.