diff options
author | Sean Dewar <seandewar@users.noreply.github.com> | 2021-08-04 19:25:54 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-08-04 19:25:54 +0200 |
commit | 80d7395dcfe96158428da6bb3d28a6eee1244e28 (patch) | |
tree | 84b3b09fe59c97f69d6248e87cf0b51dfdfd82e6 /src/blob.c | |
parent | 0eec8519424eaea7baebfda979c33dd609a4e3fa (diff) |
patch 8.2.3284: no error for insert() or remove() changing a locked blobv8.2.3284
Problem: No error for insert() or remove() changing a locked blob.
Solution: Check a blob is not locked before changing it. (Sean Dewar,
closes #8696)
Diffstat (limited to 'src/blob.c')
-rw-r--r-- | src/blob.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/blob.c b/src/blob.c index 57fe58b055..2138ac0740 100644 --- a/src/blob.c +++ b/src/blob.c @@ -412,16 +412,19 @@ blob_set_range(blob_T *dest, long n1, long n2, typval_T *src) * "remove({blob})" function */ void -blob_remove(typval_T *argvars, typval_T *rettv) +blob_remove(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg) { + blob_T *b = argvars[0].vval.v_blob; int error = FALSE; long idx; long end; + if (b != NULL && value_check_lock(b->bv_lock, arg_errmsg, TRUE)) + return; + idx = (long)tv_get_number_chk(&argvars[1], &error); if (!error) { - blob_T *b = argvars[0].vval.v_blob; int len = blob_len(b); char_u *p; |