apps: fix close of negative fd in talk.c

Bug reported by UBSan.

Change-Id: I02276521510acac8696499895fec15993c55aaf6
This commit is contained in:
Aidan MacDonald 2022-05-02 16:34:18 +01:00
parent e5e457b526
commit dadfbfc6a5

View file

@ -552,7 +552,7 @@ alloc_err:
} }
static inline int load_voicefile_failure(int fd) static inline int load_voicefile_failure(int fd)
{ {
/*if (fd >= 0) probably redundant */ if (fd >= 0)
close(fd); close(fd);
return -1; return -1;
} }
@ -829,7 +829,7 @@ void talk_init(void)
* and so we can re-use it if it's already allocated in any event */ * and so we can re-use it if it's already allocated in any event */
filehandle = open_voicefile(); filehandle = open_voicefile();
if (filehandle > -1) if (filehandle >= 0)
{ {
if (!load_voicefile_index(filehandle)) if (!load_voicefile_index(filehandle))
{ {
@ -880,6 +880,7 @@ void talk_init(void)
voice_thread_init(); voice_thread_init();
out: out:
if (filehandle >= 0)
close(filehandle); /* close again, this was just to detect presence */ close(filehandle); /* close again, this was just to detect presence */
} }