coverity/105568: Free of array-typed value: FP.

Problem    : Free of array-typed value @ 3628.
Diagnostic : False positive.
Rationale  : expand_shell_cmd() is called with a mock value for file
             (*file = (char_u **)""). That means we want file to be
             filled with a new value. We can't use *file = NULL because
             that means we don't want file to be filled.
             Now, coverity incorrectly thinks that sentinel value is the
             one we are freeing up at some other later point, which is
             not the case.
Resolution : Assert that, when we are freeing *file, its value is
             different than the sentinel one.
This commit is contained in:
Eliseo Martínez 2015-02-20 17:32:42 +01:00
parent fb44a233a5
commit 3db0a40d69

View File

@ -10,6 +10,7 @@
* ex_getln.c: Functions for entering and editing an Ex command line.
*/
#include <assert.h>
#include <errno.h>
#include <stdbool.h>
#include <string.h>
@ -3858,8 +3859,10 @@ expand_shellcmd (
STRLCPY(buf + l, pat, MAXPATHL - l);
/* Expand matches in one directory of $PATH. */
char_u **prev_file = *file;
ret = expand_wildcards(1, &buf, num_file, file, flags);
if (ret == OK) {
assert(*file != prev_file);
ga_grow(&ga, *num_file);
{
for (i = 0; i < *num_file; ++i) {