Commit Graph

68 Commits

Author SHA1 Message Date
Max Brunsfeld a1df9b785c Use new tree-sitter highlight API in property sheets 2019-05-10 09:16:19 -07:00
Max Brunsfeld 95500a29f8
Merge pull request #9 from tree-sitter/signed-unsigned
Correctly cast `name_length`
2019-04-08 13:15:20 -07:00
Max Brunsfeld 4c7d5fe26c Don't scan opening tag names during error recovery 2019-03-03 18:21:25 -08:00
Max Brunsfeld a923cb3fd7 Update tree-sitter section of package.json 2019-03-03 18:20:47 -08:00
Phil Turnbull 76f96c5979
Correctly cast `name_length`
`buffer[i++]` is a `signed char` so this cast does not correctly handle
negative values. If a custom tag has a length greater than 128 then
`buffer[i++]` is negative and so the `(uint16_t)` cast will cast it to a large
unsigned integer. This causes an out-of-bound read when reading the tag name.

We need to cast `name_length` to a `uint8_t` first, then widen to a `uint16_t`.
2019-02-26 12:05:01 -05:00
Max Brunsfeld faa7edc877
Merge pull request #8 from tree-sitter/highlight-properties
Add property sheet for syntax highlighting
2019-02-19 11:41:39 -08:00
Max Brunsfeld 33aa996cbf Travis: Set CXX to clang++, not clang 2019-02-19 11:39:31 -08:00
Max Brunsfeld aa01fdb9a9 Fix windows test script 2019-02-19 11:28:15 -08:00
Max Brunsfeld cc9971242f Regenerate 2019-02-19 11:11:35 -08:00
Max Brunsfeld 30b7bf0f46 Make distinct nodes for style/script, set up injection 2018-12-14 17:43:41 -08:00
Max Brunsfeld 57b42ed645 Add property sheet for syntax highlighting 2018-12-13 17:23:56 -08:00
Max Brunsfeld 22e568ea75 0.13.5 2018-10-30 17:11:16 -07:00
Max Brunsfeld 01cf82e234
Merge pull request #4 from Aerijo/patch-1
Fix comment end bug
2018-10-28 20:30:23 -07:00
Benjamin Gray 2f31047048
Add tests for weird comment ends 2018-10-29 11:56:39 +11:00
Benjamin Gray 4df104a855
Fix comment bug 2018-10-29 11:44:27 +11:00
Max Brunsfeld d9a5aff533 0.13.4 2018-08-30 13:24:31 -07:00
Max Brunsfeld 2d69fcd54f ⬆️ tree-sitter-cli 2018-08-30 13:00:47 -07:00
Max Brunsfeld 74882dc9ce 0.13.3 2018-08-30 11:28:26 -07:00
Max Brunsfeld 50073cde62 ⬆️ tree-sitter-cli for alias improvements 2018-08-30 11:28:22 -07:00
Max Brunsfeld 35f19b1bad 0.13.2 2018-08-29 13:06:24 -07:00
Max Brunsfeld e7b12d1444
Merge pull request #3 from tree-sitter/fuzzer-fixes
Fix bugs found during fuzzing
2018-08-29 11:43:01 -07:00
Max Brunsfeld 461343bc17 Try using the default clang on travis 2018-08-29 11:40:01 -07:00
Max Brunsfeld 0f2d7e1083 Always serialize the full depth of the tag stack 2018-08-29 11:01:00 -07:00
Phil Turnbull 37b1bd4eef
Serialize as many tags as possible 2018-08-08 12:21:44 -04:00
Phil Turnbull 5877d9a30d
Prevent out-of-bounds read when deserializing
We first serialize the total number of tags, then serialize each individual
tag. If we don't have enough space to serialize a particular tag we stop
serializing any remaining tags.

However, this causes an out-of-bounds read when deserializing because there are
less tags than expected. Just bail when there are too many tags to serialize.
2018-08-07 14:40:33 -04:00
Phil Turnbull e541c9b64b
Avoid integer cast issues when deserializing tags
`buffer` contains signed chars, so if a tag length is greater than 128 then it
is treated as a negative value when deserializing. The negative signed char is
then implicitly cast to a large unsigned integer. Explicitly cast the values to
signed chars

Co-authored-by: Rahul Zhade <zhade3@github.com>
2018-08-07 14:18:24 -04:00
Phil Turnbull 2eda6161d6
Avoid integer truncation when serializing tag lengths
A tag longer than 255 characters will be incorrectly serialized.

Co-authored-by: Rahul Zhade <zhade3@github.com>
2018-08-07 14:18:24 -04:00
Phil Turnbull 3e586b10fc
Fixed error where empty vector was being popped from
Co-authored-by: Rahul Zhade <zhade3@github.com>
2018-08-07 14:18:18 -04:00
Max Brunsfeld fa5426a735 0.13.1 2018-07-18 13:19:13 -07:00
Max Brunsfeld 083e6b9fbd Fix off-by-one error in scanner buffer size limit 2018-07-18 13:19:03 -07:00
Max Brunsfeld e74795bc0d Use unsigned, not size_t, for serializing tag stack size 2018-07-18 11:32:04 -07:00
Max Brunsfeld 70533673a2 Use std::memcpy from <cstring> 2018-07-18 11:30:49 -07:00
Max Brunsfeld 64d7888308 0.13.0 2018-07-18 11:24:54 -07:00
Max Brunsfeld b04bf7b507 ⬆️ tree-sitter-cli (new ABI version) 2018-07-18 11:24:49 -07:00
Max Brunsfeld c9b0de0410 Fix memory errors for deeply-nested HTML 2018-07-18 11:24:15 -07:00
Max Brunsfeld 7a8417f1d9 0.12.1 2018-07-06 16:30:24 -07:00
Max Brunsfeld 5d8c68c137 Fix range of script tag content 2018-06-28 20:32:27 -07:00
Max Brunsfeld 2ffed65538 0.12.0 2018-06-18 11:56:25 -07:00
Max Brunsfeld 6222cd9127 Use NULL instead of nullptr 2018-06-18 10:17:38 -07:00
Max Brunsfeld d746362d0f 0.1.3 2018-06-18 10:09:18 -07:00
Max Brunsfeld 3ba95dbf3e Represent tag name map as a std::map
This doesn't seem to affect performance, and unordered_map requires
C++11.
2018-06-18 10:05:44 -07:00
Max Brunsfeld 331b0a4b00 Include tag stack size when serializing external scanner 2018-06-18 10:04:59 -07:00
Ashi Krishnan bd235b794b
Merge pull request #1 from tree-sitter/c++99
Make the scanner compile without C++11 features
2018-06-15 19:40:41 -04:00
Max Brunsfeld 2a3ef3b7b1 Build tag map with a static method instead of an initializer list 2018-06-15 16:09:46 -07:00
Max Brunsfeld 8e6d71bd54 Don't use fancy enum features 2018-06-15 16:09:46 -07:00
Max Brunsfeld 3fce691fae Use a regular constructor instead of aggregate initialization 2018-06-15 16:09:46 -07:00
Max Brunsfeld 8afd99e35e Use explicit types instead of auto 2018-06-15 16:09:45 -07:00
Max Brunsfeld 6923b13394 Remove one range-based for loop 2018-06-15 16:09:45 -07:00
Max Brunsfeld 5def8f2a86 Use string methods for copying bytes, not loops 2018-06-15 16:09:45 -07:00
Max Brunsfeld 43f84098b8 Fix crash on unexpected closing tag after error 2018-06-15 15:36:30 -07:00