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 aef6609f4f
commit 95c3f283ea
1 changed files with 3 additions and 18 deletions

View File

@ -38,25 +38,14 @@ input_file_open(struct input_stream *is, const char *filename)
int fd, ret;
struct stat st;
char* pathname = g_strdup(filename);
if (!g_path_is_absolute(filename))
{
g_free(pathname);
return false;
}
if (stat(filename, &st) < 0) {
char* slash = strrchr(pathname, '/');
*slash = '\0';
}
fd = open_cloexec(pathname, O_RDONLY, 0);
fd = open_cloexec(filename, O_RDONLY, 0);
if (fd < 0) {
is->error = errno;
g_debug("Failed to open \"%s\": %s",
pathname, g_strerror(errno));
g_free(pathname);
filename, g_strerror(errno));
return false;
}
@ -66,15 +55,13 @@ input_file_open(struct input_stream *is, const char *filename)
if (ret < 0) {
is->error = errno;
close(fd);
g_free(pathname);
return false;
}
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;
close(fd);
g_free(pathname);
return false;
}
@ -88,8 +75,6 @@ input_file_open(struct input_stream *is, const char *filename)
is->data = GINT_TO_POINTER(fd);
is->ready = true;
g_free(pathname);
return true;
}