[PATCH] checkout-index.c: Unconditionally free memory
- From
Stefan Beller <sbeller@google.com>
- Date
- May 1, 2015, 19:28 UTC
- Message-ID
- <1430508507-14016-1-git-send-email-sbeller@google.com>
It's safe to free the char pointer `p` unconditionally.
The pointer is assigned just 2 lines earlier as a return from prefix_path, which allocates new memory for its return value.
Then it is used in checkout_file, which passes the pointer on to cache_name_pos and write_tempfile_record, both of which do not store the pointer in any permanent record.
So the condition on when to free the pointer is just "always".
Signed-off-by: Stefan Beller <sbeller@google.com> --- builtin/checkout-index.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c index 9ca2da1..e28dc35 100644 --- a/builtin/checkout-index.c +++ b/builtin/checkout-index.c @@ -249,8 +249,8 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix) die("git checkout-index: don't mix '--stdin' and explicit filenames"); p = prefix_path(prefix, prefix_length, arg); checkout_file(p, prefix); - if (p < arg || p > arg + strlen(arg)) - free((char *)p); + + free((char *)p); } if (read_from_stdin) {
-- 2.4.0.rc3.16.g0ab00b9