Merge branch 'tg/refs-allowed-flags'
authorJunio C Hamano <gitster@pobox.com>
Mon, 25 Sep 2017 06:24:07 +0000 (15:24 +0900)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Sep 2017 06:24:07 +0000 (15:24 +0900)
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

refs.c
refs.h
diff --git a/refs.c b/refs.c
index 0d5fe7442ae98e5bdc9641b6891cf508e2605453..83f0e687857dfaee3b91ce4d47b16f2f16945ce2 100644 (file)
--- 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 78a26400b61b0046c72a64b985b9aa6443f27021..ae33a5f74d65dda62c84deb1eaae1774a0d21214 100644 (file)
--- a/refs.h
+++ b/refs.h
@@ -344,6 +344,14 @@ int refs_pack_refs(struct ref_store *refs, unsigned int flags);
 #define REF_NODEREF    0x01
 #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.
  */