commit a1fa69eaf52b4b1ca55577ad0e7c9f397ac7089d
parent 374a7f515a24541cc7cc0f75deb88e8a58b844d0
Author: Richard Ipsum <richardipsum@fastmail.co.uk>
Date: Sun, 2 Apr 2017 12:58:22 +0100
sparsemap: Check for errors
Diffstat:
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/sparseutils/sparsemap.py b/sparseutils/sparsemap.py
@@ -19,6 +19,7 @@
import sys
import os
+import stat
import errno
def sparsemap(fd):
@@ -61,7 +62,20 @@ def main():
print('usage: {} FILE'.format(sys.argv[0]), file=sys.stderr)
sys.exit(1)
- fd = os.open(sys.argv[1], os.O_RDONLY)
+ path = sys.argv[1]
+
+ try:
+ mode = os.stat(path).st_mode
+ except os.error as e:
+ print("{}: Couldn't open `{}': {}".format(sys.argv[0], path, e.strerror))
+ sys.exit(1)
+
+ if not stat.S_ISREG(mode):
+ print("{}: error: `{}' is not a regular file".format(sys.argv[0], path),
+ file=sys.stderr)
+ sys.exit(1)
+
+ fd = os.open(path, os.O_RDONLY)
sparsemap(fd)
os.close(fd)