]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-5091 --resolve avoid division by 0
authorRaymond Chandler <intralanman@gmail.com>
Wed, 20 Mar 2013 02:32:40 +0000 (22:32 -0400)
committerRaymond Chandler <intralanman@gmail.com>
Wed, 20 Mar 2013 02:32:40 +0000 (22:32 -0400)
src/mod/formats/mod_shout/mod_shout.c

index 6d00f7ab38bd3c79b74610632b0db6b764b58581..e3fda4bef9b1cde2231a52f7acbc5b3a8766b90b 100644 (file)
@@ -208,6 +208,7 @@ static inline void free_context(shout_context_t *context)
                                unsigned char mp3buffer[8192];
                                int len;
                                int16_t blank[2048] = { 0 }, *r = NULL;
+                               int framesize;
 
                                if (context->channels == 2) {
                                        r = blank;
@@ -222,13 +223,16 @@ static inline void free_context(shout_context_t *context)
                                        }
                                }
 
-                               while ((len = lame_encode_flush(context->gfp, mp3buffer, sizeof(mp3buffer))) > 0) {
-                                       ret = shout_send(context->shout, mp3buffer, len);
+                               framesize = lame_get_framesize(context->gfp);
+                               if ( framesize ) {
+                                       while ((len = lame_encode_flush(context->gfp, mp3buffer, sizeof(mp3buffer))) > 0) {
+                                               ret = shout_send(context->shout, mp3buffer, len);
 
-                                       if (ret != SHOUTERR_SUCCESS) {
-                                               break;
-                                       } else {
-                                               shout_sync(context->shout);
+                                               if (ret != SHOUTERR_SUCCESS) {
+                                                       break;
+                                               } else {
+                                                       shout_sync(context->shout);
+                                               }
                                        }
                                }
                        }