projects
/
vuplus_dvbapp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d619c61
)
db.cpp : 'Load Bouquets' fixed for line have more than 256 chracters.
author
Chang.H.S
<jhs@dev3>
Wed, 4 Jul 2012 09:17:17 +0000
(18:17 +0900)
committer
Chang.H.S
<jhs@dev3>
Wed, 4 Jul 2012 09:17:17 +0000
(18:17 +0900)
lib/dvb/db.cpp
[changed mode: 0644->0755]
patch
|
blob
|
history
diff --git
a/lib/dvb/db.cpp
b/lib/dvb/db.cpp
old mode 100644
(file)
new mode 100755
(executable)
index
f938cb1
..
ea0df97
--- a/
lib/dvb/db.cpp
+++ b/
lib/dvb/db.cpp
@@
-633,18
+633,18
@@
void eDVBDB::loadBouquet(const char *path)
return;
}
int entries=0;
return;
}
int entries=0;
- char line[256];
+ size_t linesize = 256;
+ char *line = (char*)malloc(linesize);
bool read_descr=false;
eServiceReference *e = NULL;
while (1)
{
bool read_descr=false;
eServiceReference *e = NULL;
while (1)
{
- if (!fgets(line, 256, fp))
- break;
- line[strlen(line)-1]=0;
- if (strlen(line) && line[strlen(line)-1]=='\r')
- line[strlen(line)-1]=0;
- if (!line[0])
- break;
+ int len;
+ if ((len = getline(&line, &linesize, fp)) < 2) break;
+ /* strip newline */
+ line[--len] = 0;
+ /* strip carriage return (when found) */
+ if (line[len - 1] == '\r') line[--len] = 0;
if (line[0]=='#')
{
if (!strncmp(line, "#SERVICE", 8))
if (line[0]=='#')
{
if (!strncmp(line, "#SERVICE", 8))
@@
-700,6
+700,7
@@
void eDVBDB::loadBouquet(const char *path)
continue;
}
}
continue;
}
}
+ free(line);
fclose(fp);
eDebug("%d entries in Bouquet %s", entries, bouquet_name.c_str());
}
fclose(fp);
eDebug("%d entries in Bouquet %s", entries, bouquet_name.c_str());
}