don't free x after y = realloc(x, N) even if y != x
found by llvm/scan-build
Index: keynote.l
===================================================================
RCS file: /cvs/src/lib/libkeynote/keynote.l,v
retrieving revision 1.20
diff -u -p -U17 -r1.20 keynote.l
--- keynote.l 29 Nov 2013 19:00:51 -0000 1.20
+++ keynote.l 4 Feb 2015 11:00:30 -0000
@@ -272,37 +272,34 @@ keynote_lex_add(void *s, int type)
p = (struct lex_list *) realloc(keynote_lex_list,
keynote_max_lex_list *
sizeof(struct lex_list));
if (p == (struct lex_list *) NULL)
{
switch (type)
{
case LEXTYPE_CHAR:
free(s);
break;
}
keynote_max_lex_list /= 2;
keynote_errno = ERROR_MEMORY;
return -1;
}
- if (p != keynote_lex_list)
- free(keynote_lex_list);
-
keynote_lex_list = p;
keynote_lex_list[i].lex_s = s;
keynote_lex_list[i++].lex_type = type;
keynote_lex_counter++;
/* Zero out the rest */
memset(&(keynote_lex_list[i]), 0,
(keynote_max_lex_list - i) * sizeof(struct lex_list));
return RESULT_TRUE;
}
/*
* Remove string.
*/
void
keynote_lex_remove(void *s)