[PATCH 4/4] notes: refuse to append to non-blob notes
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/notes.c | 5 ++++-
t/t3301-notes.sh | 4 ++++
2 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/builtin/notes.c b/builtin/notes.c
index 44fb8b6..d958618 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -204,8 +204,11 @@ static void create_note(const unsigned char *object, struct msg_arg *msg,
strbuf_grow(&(msg->buf), size + 1);
if (msg->buf.len && prev_buf && size)
strbuf_insert(&(msg->buf), 0, "\n", 1);
- if (prev_buf && size)
+ if (prev_buf && size) {
+ if (type != OBJ_BLOB)
+ die(_("note %s is not a blob"), sha1_to_hex(prev));
strbuf_insert(&(msg->buf), 0, prev_buf, size);
+ }
free(prev_buf);
}
diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
index 9104bf0..0dac1e9 100755
--- a/t/t3301-notes.sh
+++ b/t/t3301-notes.sh
@@ -1240,4 +1240,8 @@ test_expect_success 'cannot edit non-blob notes' '
EDITOR=cat test_must_fail git notes edit
'
+test_expect_success 'refuse to launch editor with existing non-blob notes' '
+ EDITOR=cat test_must_fail git notes append -m foo
+'
+
test_done
--
1.7.8.36.g69ee2