vlc | branch: master | Jean-Baptiste Kempf <[email protected]> | Mon May 15 
12:05:31 2017 +0200| [11ac3e238a53d65361719ea36fcc4995fc4e62d0] | committer: 
Jean-Baptiste Kempf

Xiph: do not use invalid Track number values

Close #18323

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=11ac3e238a53d65361719ea36fcc4995fc4e62d0
---

 modules/demux/xiph_metadata.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/modules/demux/xiph_metadata.c b/modules/demux/xiph_metadata.c
index a67b848474..29cc4eb48b 100644
--- a/modules/demux/xiph_metadata.c
+++ b/modules/demux/xiph_metadata.c
@@ -451,20 +451,19 @@ void vorbis_ParseComment( es_format_t *p_fmt, vlc_meta_t 
**pp_meta,
             /* Yeah yeah, such a clever idea, let's put xx/xx inside 
TRACKNUMBER
              * Oh, and let's not use TRACKTOTAL or TOTALTRACKS... */
             short unsigned u_track, u_total;
-            if( sscanf( &psz_comment[strlen("TRACKNUMBER=")], "%hu/%hu", 
&u_track, &u_total ) == 2 )
+            int nb_values = sscanf( &psz_comment[strlen("TRACKNUMBER=")], 
"%hu/%hu", &u_track, &u_total );
+            if( nb_values >= 1 )
             {
                 char str[6];
                 snprintf(str, 6, "%u", u_track);
                 vlc_meta_Set( p_meta, vlc_meta_TrackNumber, str );
                 hasMetaFlags |= XIPHMETA_TrackNum;
-                snprintf(str, 6, "%u", u_total);
-                vlc_meta_Set( p_meta, vlc_meta_TrackTotal, str );
-                hasMetaFlags |= XIPHMETA_TrackTotal;
-            }
-            else
-            {
-                vlc_meta_Set( p_meta, vlc_meta_TrackNumber, 
&psz_comment[strlen("TRACKNUMBER=")] );
-                hasMetaFlags |= XIPHMETA_TrackNum;
+                if( nb_values >= 2 )
+                {
+                    snprintf(str, 6, "%u", u_total);
+                    vlc_meta_Set( p_meta, vlc_meta_TrackTotal, str );
+                    hasMetaFlags |= XIPHMETA_TrackTotal;
+                }
             }
         }
         else IF_EXTRACT_ONCE("TRACKTOTAL=", TrackTotal )

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to