compile_info() can leak an open file descriptor write_all() fails. This
corrects it.
Found by Coverity.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
fd = open(info_c_file, O_WRONLY|O_CREAT|O_EXCL, 0600);
if (fd < 0)
return NULL;
fd = open(info_c_file, O_WRONLY|O_CREAT|O_EXCL, 0600);
if (fd < 0)
return NULL;
- if (!write_all(fd, info, tal_count(info)-1))
+ if (!write_all(fd, info, tal_count(info)-1)) {
+ close(fd);
if (close(fd) != 0)
return NULL;
if (close(fd) != 0)
return NULL;