input/file: don't fall back to parent directory

This code has never made any sense, and has broken some of the archive
plugin.
This commit is contained in:
Max Kellermann 2009-12-15 18:59:03 +01:00
parent 8f7bc70bf5
commit f01d7d230b
2 changed files with 5 additions and 18 deletions

2
NEWS
View File

@ -1,4 +1,6 @@
ver 0.15.7 (2009/??/??) ver 0.15.7 (2009/??/??)
* input:
- file: don't fall back to parent directory
* tags: * tags:
- id3: fix ID3v1 charset conversion - id3: fix ID3v1 charset conversion
* decoders: * decoders:

View File

@ -36,25 +36,14 @@ input_file_open(struct input_stream *is, const char *filename)
int fd, ret; int fd, ret;
struct stat st; struct stat st;
char* pathname = g_strdup(filename);
if (filename[0] != '/') if (filename[0] != '/')
{
g_free(pathname);
return false; return false;
}
if (stat(filename, &st) < 0) { fd = open(filename, O_RDONLY);
char* slash = strrchr(pathname, '/');
*slash = '\0';
}
fd = open(pathname, O_RDONLY);
if (fd < 0) { if (fd < 0) {
is->error = errno; is->error = errno;
g_debug("Failed to open \"%s\": %s", g_debug("Failed to open \"%s\": %s",
pathname, g_strerror(errno)); filename, g_strerror(errno));
g_free(pathname);
return false; return false;
} }
@ -64,15 +53,13 @@ input_file_open(struct input_stream *is, const char *filename)
if (ret < 0) { if (ret < 0) {
is->error = errno; is->error = errno;
close(fd); close(fd);
g_free(pathname);
return false; return false;
} }
if (!S_ISREG(st.st_mode)) { if (!S_ISREG(st.st_mode)) {
g_debug("Not a regular file: %s", pathname); g_debug("Not a regular file: %s", filename);
is->error = EINVAL; is->error = EINVAL;
close(fd); close(fd);
g_free(pathname);
return false; return false;
} }
@ -86,8 +73,6 @@ input_file_open(struct input_stream *is, const char *filename)
is->data = GINT_TO_POINTER(fd); is->data = GINT_TO_POINTER(fd);
is->ready = true; is->ready = true;
g_free(pathname);
return true; return true;
} }