diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index cdd5da7e009b..7a0ca9f0fbbe 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@ -89,10 +89,7 @@ * but I don't think the added complexity is worth it) */ -#include #include -#include -#include #include #include #include @@ -213,27 +210,28 @@ static void parse_config_file(const char *p) static void *read_file(const char *filename) { struct stat st; - int fd; + FILE *file; char *buf; - fd = open(filename, O_RDONLY); - if (fd < 0) { + file = fopen(filename, "rb"); + if (!file) { fprintf(stderr, "fixdep: error opening file: "); perror(filename); exit(2); } - if (fstat(fd, &st) < 0) { - fprintf(stderr, "fixdep: error fstat'ing file: "); + if (stat(filename, &st) < 0) { + fprintf(stderr, "fixdep: error stat'ing file: "); perror(filename); exit(2); } + buf = xmalloc(st.st_size + 1); - if (read(fd, buf, st.st_size) != st.st_size) { + if (fread(buf, 1, st.st_size, file) != st.st_size) { perror("fixdep: read"); exit(2); } buf[st.st_size] = '\0'; - close(fd); + fclose(file); return buf; }