]> granicus.if.org Git - libnl/commit
lib/cache_mngr.c: avoid memleak if realloc fails
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Thu, 8 Jun 2017 08:59:12 +0000 (10:59 +0200)
committerRasmus Villemoes <linux@rasmusvillemoes.dk>
Thu, 8 Jun 2017 08:59:12 +0000 (10:59 +0200)
commit3cbfa90c9cbf1c2f499845c18d5bc6d04d435325
treeb7aa866f2f826171f17587e5194de5606c78004b
parent32d13c0058fd1beacb091c1d57999854819c3bc2
lib/cache_mngr.c: avoid memleak if realloc fails

foo = realloc(foo, ...) is almost always a bug - the only exceptions
being if (a) one just exits the process in case of failure or (b) if one
has made a copy of the foo pointer before the realloc call, and takes
care to either reinstate it afterwards or free() it and make sure that
the data structure is updated to handle foo now being NULL (in this case
for example setting ->cm_nassocs to 0). (a) is not an option in
libraries, and (b) is more cumbersome than just doing it the canonical
way: use local variables for the new pointer and size, and only install
them when realloc succeeds.
lib/cache_mngr.c