fixing TNT_SBO_SPARSE/TNT_SBO_PACKED type objects serialization breaking if tnt_sbuf_object_grow_stack() gets called (effectively overwriting current stack array with zeroes) #156
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
reproducible with following:
[root@vostro tmp]# cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <tarantool/tarantool.h>
#include <msgpuck.h>
void test(int levels)
{
struct tnt_stream s;
tnt_object(&s);
tnt_object_type(&s, TNT_SBO_SPARSE);
}
int main(int argc, char **argv)
{
for (int i=1; i<argc; ++i)
test(atoi(argv[i]));
return 0;
}
[root@vostro tmp]#
[root@vostro tmp]# gcc test.c -o test /usr/lib64/libmsgpuck.a /usr/lib64/libtarantool.a
[root@vostro tmp]# ./test 8
[0, [1, [2, [3, [4, [5, [6, [7]]]]]]]]
[root@vostro tmp]#
[root@vostro tmp]# ./test 9
[]
[root@vostro tmp]#