summaryrefslogtreecommitdiffstats
path: root/src/cal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cal.c')
-rw-r--r--src/cal.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cal.c b/src/cal.c
index 4d07e5e..0688aa9 100644
--- a/src/cal.c
+++ b/src/cal.c
@@ -76,14 +76,14 @@ int cal_init_file(const char * file, struct cal ** cal_out) {
off_t lsize = 0;
#endif
- if ( stat(file, &st) != 0 )
- return -1;
-
fd = open(file, O_RDONLY);
if ( fd < 0 )
return -1;
+ if ( fstat(fd, &st) != 0 )
+ goto err;
+
if ( S_ISREG(st.st_mode) )
size = st.st_size;
else if ( S_ISBLK(st.st_mode) ) {