1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/apps/talk.c b/apps/talk.c
index 9f31645..c327487 100644
--- a/apps/talk.c
+++ b/apps/talk.c
@@ -540,7 +540,9 @@ void talk_init(void)
     reset_state(); /* use this for most of our inits */

     filehandle = open_voicefile();
-    has_voicefile = (filehandle >= 0); /* test if we can open it */
+    size_t audiobufsz = audiobufend - audiobuf;
+    /* test if we can open and if it fits in the audiobuffer */
+    has_voicefile = filehandle >= 0 && filesize(filehandle) > (off_t)audiobufsz;
     voicefile_size = 0;

     if (has_voicefile)