summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Hitz <christian.hitz@aizo.com>2013-08-29 10:03:56 +0200
committerChristian Hitz <christian.hitz@aizo.com>2013-08-29 10:03:56 +0200
commit776cc7cf682959c684cd2f0ee0c9044bee3dac76 (patch)
treedc59dc48f2175b986f5aeaa601619958c8f8aaef
parentf0becae702b967e1b963b1a101aca233436272e8 (diff)
downloadgit-fat-776cc7cf682959c684cd2f0ee0c9044bee3dac76.tar.gz
fix handling of broken symlinks
if a symlink has a length of self.magiclen git-fat would crash because it could not read the file
-rwxr-xr-xgit-fat5
-rwxr-xr-xtest.sh3
2 files changed, 7 insertions, 1 deletions
diff --git a/git-fat b/git-fat
index 4455600..e62f99b 100755
--- a/git-fat
+++ b/git-fat
@@ -194,7 +194,10 @@ class GitFat(object):
if stat.st_size != self.magiclen:
return False, None
# read file
- digest, bytes = self.decode_stream(open(fname))
+ try:
+ digest, bytes = self.decode_stream(open(fname))
+ except IOError:
+ return False, None
if isinstance(digest, str):
return digest, bytes
else:
diff --git a/test.sh b/test.sh
index 8299c6c..e4ee3bb 100755
--- a/test.sh
+++ b/test.sh
@@ -13,6 +13,9 @@ echo '*.fat filter=fat -crlf' > .gitattributes
git add .gitattributes .gitfat
git commit -m'Initial fat repository'
+ln -s /oe/dss-oe/dss-add-ons-testing-build/deploy/licenses/common-licenses/GPL-3 c
+git add c
+git commit -m'add broken symlink'
echo 'fat content a' > a.fat
git add a.fat
git commit -m'add a.fat'