vlc_fopen: fix append mode

In append mode, all write operations must occur at the end of the file.
Nevertheless the initial read offset is the beginning of the file.
This commit is contained in:
Rémi Denis-Courmont 2011-11-03 19:24:14 +02:00
parent 19cc40ec00
commit 7834663b7d
1 changed files with 1 additions and 9 deletions

View File

@ -51,7 +51,6 @@
FILE *vlc_fopen (const char *filename, const char *mode)
{
int rwflags = 0, oflags = 0;
bool append = false;
for (const char *ptr = mode; *ptr; ptr++)
{
@ -63,8 +62,7 @@ FILE *vlc_fopen (const char *filename, const char *mode)
case 'a':
rwflags = O_WRONLY;
oflags |= O_CREAT;
append = true;
oflags |= O_CREAT | O_APPEND;
break;
case 'w':
@ -92,12 +90,6 @@ FILE *vlc_fopen (const char *filename, const char *mode)
if (fd == -1)
return NULL;
if (append && (lseek (fd, 0, SEEK_END) == -1))
{
close (fd);
return NULL;
}
FILE *stream = fdopen (fd, mode);
if (stream == NULL)
close (fd);