Mercurial > vim
annotate src/proto/crypt.pro @ 11303:ef32a5c74515 v8.0.0537
patch 8.0.0537: illegal memory access with :z and large count
commit https://github.com/vim/vim/commit/fa0ad0bb0b4255e64ebcf9269d60a942e0ae7ff9
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Apr 2 15:45:17 2017 +0200
patch 8.0.0537: illegal memory access with :z and large count
Problem: Illegal memory access with :z and large count.
Solution: Check for number overflow, using long instead of int. (Dominique
Pelle, closes #1612)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 02 Apr 2017 16:00:05 +0200 |
parents | 21b0a39d13ed |
children | 959cf4c63b18 |
rev | line source |
---|---|
6122 | 1 /* crypt.c */ |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
2 int crypt_method_nr_from_name(char_u *name); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
3 int crypt_method_nr_from_magic(char *ptr, int len); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
4 int crypt_works_inplace(cryptstate_T *state); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
5 int crypt_get_method_nr(buf_T *buf); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
6 int crypt_whole_undofile(int method_nr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
7 int crypt_get_header_len(int method_nr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
8 void crypt_set_cm_option(buf_T *buf, int method_nr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
9 int crypt_self_test(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
10 cryptstate_T *crypt_create(int method_nr, char_u *key, char_u *salt, int salt_len, char_u *seed, int seed_len); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
11 cryptstate_T *crypt_create_from_header(int method_nr, char_u *key, char_u *header); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
12 cryptstate_T *crypt_create_from_file(FILE *fp, char_u *key); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
13 cryptstate_T *crypt_create_for_writing(int method_nr, char_u *key, char_u **header, int *header_len); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
14 void crypt_free_state(cryptstate_T *state); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
15 long crypt_encode_alloc(cryptstate_T *state, char_u *from, size_t len, char_u **newptr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
16 long crypt_decode_alloc(cryptstate_T *state, char_u *ptr, long len, char_u **newptr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
17 void crypt_encode(cryptstate_T *state, char_u *from, size_t len, char_u *to); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
18 void crypt_decode(cryptstate_T *state, char_u *from, size_t len, char_u *to); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
19 void crypt_encode_inplace(cryptstate_T *state, char_u *buf, size_t len); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
20 void crypt_decode_inplace(cryptstate_T *state, char_u *buf, size_t len); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
21 void crypt_free_key(char_u *key); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
22 void crypt_check_method(int method); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
23 void crypt_check_current_method(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
24 char_u *crypt_get_key(int store, int twice); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6353
diff
changeset
|
25 void crypt_append_msg(buf_T *buf); |
6122 | 26 /* vim: set ft=c : */ |