streaminfo2.cpp fix

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

streaminfo2.cpp fix

Beitrag von seife »

Hi,
folgenden bug habe ich beim portieren auf die dreambox gefunden, er führt zum segfault, wenn die Zeilen länger als 35 Zeichen sind. Auf der dreambox:

Code: Alles auswählen

~ > cat /proc/bus/bitstream
Bitstream Settings:
H_SIZE:  720
V_SIZE:  576
A_RATIO: 3
F_RATE:  3
VIDEO_BUF_SIZE: 0 bytes (+~80 for fifo)
AUDIO_BUF: 00000000
BUMM :-)

Code: Alles auswählen

Index: apps/tuxbox/neutrino/src/gui/streaminfo2.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp,v
retrieving revision 1.24
diff -u -p -r1.24 streaminfo2.cpp
--- a/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp      26 May 2007 15:05:55 -0000      1.24
+++ b/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp      9 Jun 2007 14:53:38 -0000
@@ -454,7 +454,7 @@ void CStreamInfo2::paint_techinfo(int xp
        fgets(buf,35,fd);//dummy
        while(!feof(fd))
        {
-               if(fgets(buf,35,fd)!=NULL)
+               if(fgets(buf,99,fd)!=NULL)
                {
                        buf[strlen(buf)-1]=0;
                        tmpptr=buf;
@@ -511,7 +511,8 @@ void CStreamInfo2::paint_techinfo(int xp



-       if (!bitInfo[7]) strncpy(buf, g_Locale->getText(LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN), sizeof(buf));
+       if (!bitInfo[7])
+               strncpy(buf, g_Locale->getText(LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN), sizeof(buf));
        else {
                const char* layernames[4]       ={"res", "III", "II", "I"};
                const char* sampfreqnames[4]    ={"44,1k", "48k", "32k", "res"};
Der zweite hunk ist ein fix für bessere Lesbarkeit (IMHO).
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

erledigt
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

aber was hat denn "cat /proc/bus/bitstream"
mit "apps/tuxbox/neutrino/src/gui/streaminfo2.cpp " zu tun?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Houdini hat geschrieben:aber was hat denn "cat /proc/bus/bitstream"
mit "apps/tuxbox/neutrino/src/gui/streaminfo2.cpp " zu tun?
/proc/bus/bitstream ist das File, auf das fgets gemacht wird. Die VIDEO_BUF_SIZE Zeile ist länger als 35 Bytes, dann knallts.