aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-09-25 15:24:07 +0900
committerJunio C Hamano <gitster@pobox.com>2017-09-25 15:24:07 +0900
commitd019010559b26784b0aea6cf08b43f576ef027f9 (patch)
tree3b89930775ebcca6151ec6163782881b2dd8c134
parent62b1cb7b135d07912a9e0025b54be39dfc79e1dd (diff)
parentc788c54cde5f7d52e4db9d4971545c3b2456ddcf (diff)
downloadgit-d019010559b26784b0aea6cf08b43f576ef027f9.tar.gz
git-d019010559b26784b0aea6cf08b43f576ef027f9.tar.xz
Merge branch 'tg/refs-allowed-flags'
API error-proofing which happens to also squelch warnings from GCC. * tg/refs-allowed-flags: refs: strip out not allowed flags from ref_transaction_update
-rw-r--r--refs.c2
-rw-r--r--refs.h8
2 files changed, 10 insertions, 0 deletions
diff --git a/refs.c b/refs.c
index 0d5fe7442..83f0e6878 100644
--- a/refs.c
+++ b/refs.c
@@ -939,6 +939,8 @@ int ref_transaction_update(struct ref_transaction *transaction,
return -1;
}
+ flags &= REF_TRANSACTION_UPDATE_ALLOWED_FLAGS;
+
flags |= (new_sha1 ? REF_HAVE_NEW : 0) | (old_sha1 ? REF_HAVE_OLD : 0);
ref_transaction_add_update(transaction, refname, flags,
diff --git a/refs.h b/refs.h
index 78a26400b..ae33a5f74 100644
--- a/refs.h
+++ b/refs.h
@@ -345,6 +345,14 @@ int refs_pack_refs(struct ref_store *refs, unsigned int flags);
#define REF_FORCE_CREATE_REFLOG 0x40
/*
+ * Flags that can be passed in to ref_transaction_update
+ */
+#define REF_TRANSACTION_UPDATE_ALLOWED_FLAGS \
+ REF_ISPRUNING | \
+ REF_FORCE_CREATE_REFLOG | \
+ REF_NODEREF
+
+/*
* Setup reflog before using. Fill in err and return -1 on failure.
*/
int refs_create_reflog(struct ref_store *refs, const char *refname,