From: Junio C Hamano Date: Mon, 25 Sep 2017 06:24:07 +0000 (+0900) Subject: Merge branch 'tg/refs-allowed-flags' X-Git-Tag: v2.15.0-rc0~65 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/d019010559b26784b0aea6cf08b43f576ef027f9?hp=62b1cb7b135d07912a9e0025b54be39dfc79e1dd 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 --- diff --git a/refs.c b/refs.c index 0d5fe7442a..83f0e68785 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 78a26400b6..ae33a5f74d 100644 --- 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. */