cbfstool: Don't use fileno() to get file size
fileno() is a mess on some operating systems. Don't
deliberately convert between FILE * and file handles.
Change-Id: I5be62a731f928333ea2e5843d81f541453fdb396
Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-on: http://review.coreboot.org/11636
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
diff --git a/util/cbfstool/common.c b/util/cbfstool/common.c
index f8ce2f9..e0474b3 100644
--- a/util/cbfstool/common.c
+++ b/util/cbfstool/common.c
@@ -46,14 +46,14 @@
static off_t get_file_size(FILE *f)
{
- struct stat s;
- int fd = fileno(f);
- if (fd == -1) return -1;
- if (fstat(fd, &s) == -1) return -1;
- return s.st_size;
+ off_t fsize;
+ fseek(f, 0, SEEK_END);
+ fsize = ftell(f);
+ fseek(f, 0, SEEK_SET);
+ return fsize;
}
-/* Buffer and file I/O */
+/* Buffer and file I/O */
int buffer_create(struct buffer *buffer, size_t size, const char *name)
{
buffer->name = strdup(name);