pseudoref: check return values from read_ref()
[gitweb.git] / refs.c
diff --git a/refs.c b/refs.c
index 522b19b5394364567539a8d7ded5a4a6194994f2..1db3654b8e0518a73e7b847385cd7a9496013d07 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -2868,7 +2868,9 @@ static int write_pseudoref(const char *pseudoref, const unsigned char *sha1,
 
        if (old_sha1) {
                unsigned char actual_old_sha1[20];
-               read_ref(pseudoref, actual_old_sha1);
+
+               if (read_ref(pseudoref, actual_old_sha1))
+                       die("could not read ref '%s'", pseudoref);
                if (hashcmp(actual_old_sha1, old_sha1)) {
                        strbuf_addf(err, "Unexpected sha1 when writing %s", pseudoref);
                        rollback_lock_file(&lock);
@@ -2904,7 +2906,8 @@ static int delete_pseudoref(const char *pseudoref, const unsigned char *old_sha1
                                               LOCK_DIE_ON_ERROR);
                if (fd < 0)
                        die_errno(_("Could not open '%s' for writing"), filename);
-               read_ref(pseudoref, actual_old_sha1);
+               if (read_ref(pseudoref, actual_old_sha1))
+                       die("could not read ref '%s'", pseudoref);
                if (hashcmp(actual_old_sha1, old_sha1)) {
                        warning("Unexpected sha1 when deleting %s", pseudoref);
                        rollback_lock_file(&lock);