summaryrefslogtreecommitdiffstats
path: root/playtreeparser.c
diff options
context:
space:
mode:
authoralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-23 20:06:00 +0000
committeralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-23 20:06:00 +0000
commite87d472777cd7e0468185adab4e752eeef07444e (patch)
tree4463949eed2542105221f881935789e8782e84b7 /playtreeparser.c
parent74ce925bb3d8692478922b6485905da0ac542cf4 (diff)
downloadmpv-e87d472777cd7e0468185adab4e752eeef07444e.tar.bz2
mpv-e87d472777cd7e0468185adab4e752eeef07444e.tar.xz
Portability fix with realloc
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5803 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'playtreeparser.c')
-rw-r--r--playtreeparser.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/playtreeparser.c b/playtreeparser.c
index 847a93bd23..489308f8aa 100644
--- a/playtreeparser.c
+++ b/playtreeparser.c
@@ -49,7 +49,7 @@ play_tree_parser_get_line(play_tree_parser_t* p) {
p->iter = p->buffer;
}
- if(p->stream->eof && p->buffer_end == 0)
+ if(p->stream->eof && (p->buffer_end == 0 || p->iter[0] == '\0'))
return NULL;
while(1) {
@@ -83,12 +83,14 @@ play_tree_parser_get_line(play_tree_parser_t* p) {
}
line_end = ((*(end-1)) == '\r') ? end-1 : end;
- p->line = (char*)realloc(p->line,line_end - p->iter+1);
- if(!p->line)
+ if(line_end - p->iter >= 0)
+ p->line = (char*)realloc(p->line,line_end - p->iter+1);
+ else
return NULL;
- strncpy(p->line,p->iter,line_end - p->iter);
+ if(line_end - p->iter > 0)
+ strncpy(p->line,p->iter,line_end - p->iter);
p->line[line_end - p->iter] = '\0';
- if(end != '\0')
+ if(end[0] != '\0')
end++;
if(!p->keep) {