shallow: use struct 'shallow_lock' for additional safety
commitcac4b8e22ee39e52341d718450f8e4055c4dc16f
authorTaylor Blau <me@ttaylorr.com>
Thu, 30 Apr 2020 19:48:57 +0000 (30 13:48 -0600)
committerJunio C Hamano <gitster@pobox.com>
Thu, 30 Apr 2020 21:19:13 +0000 (30 14:19 -0700)
treea9f706e5504f65230a96e94fa8f320b518455a07
parenta4101617688ad504d06b4cc007430c406640e934
shallow: use struct 'shallow_lock' for additional safety

In previous patches, the functions 'commit_shallow_file' and
'rollback_shallow_file' were introduced to reset the shallowness
validity checks on a repository after potentially modifying
'.git/shallow'.

These functions can be made safer by wrapping the 'struct lockfile *' in
a new type, 'shallow_lock', so that they cannot be called with a raw
lock (and potentially misused by other code that happens to possess a
lockfile, but has nothing to do with shallowness).

This patch introduces that type as a thin wrapper around 'struct
lockfile', and updates the two aforementioned functions and their
callers to use it.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/receive-pack.c
fetch-pack.c
shallow.c
shallow.h