diff options
author | Florian Weimer <fweimer@redhat.com> | 2014-02-03 16:48:01 -0800 |
---|---|---|
committer | Tina Müller <cpan2@tinita.de> | 2018-07-18 21:56:11 +0200 |
commit | 96a49a1d9c771b1f7f29e8021abbb49c59f9b9a7 (patch) | |
tree | 8e5d20ef8e33d621c115f8cee45d056dfe664771 /src | |
parent | 5b8859f728655747e01f202f71d52d863d18079e (diff) | |
download | libyaml-git-96a49a1d9c771b1f7f29e8021abbb49c59f9b9a7.tar.gz |
yaml_stack_extend: guard against integer overflow
Diffstat (limited to 'src')
-rw-r--r-- | src/api.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -118,7 +118,12 @@ yaml_string_join( YAML_DECLARE(int) yaml_stack_extend(void **start, void **top, void **end) { - void *new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2); + void *new_start; + + if ((char *)*end - (char *)*start >= INT_MAX / 2) + return 0; + + new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2); if (!new_start) return 0; |