)]}'
{"Makefile.am":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"44b277d8142cdb03bd5f60975b01fe7c5f2c1b15","unresolved":false,"context_lines":[{"line_number":73,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":74,"context_line":"\t\t./test/alg_sig_test"},{"line_number":75,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":76,"context_line":"\t\t./test/.libs/liberasurecode_test"},{"line_number":77,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":78,"context_line":"\t\t./test/test_xor_hd_code"},{"line_number":79,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"fa31d9ce_13ec08f2","line":76,"updated":"2017-02-15 10:43:46.000000000","message":"The actual binary is in .libs directory. ./test/liberasurecode_test is just a bash script to wrap the call of the binary. That is why we got no leaks reports even it actually leaks the memory.","commit_id":"fbfcd0625b02cb9f0971caa1f26a3a9f05392753"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"44b277d8142cdb03bd5f60975b01fe7c5f2c1b15","unresolved":false,"context_lines":[{"line_number":77,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":78,"context_line":"\t\t./test/test_xor_hd_code"},{"line_number":79,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":80,"context_line":"\t\t./test/.libs/libec_slap"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"CLEANFILES \u003d cscope.in.out cscope.out cscope.po.out"},{"line_number":83,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"fa31d9ce_53c04050","line":80,"updated":"2017-02-15 10:43:46.000000000","message":"ditto.","commit_id":"fbfcd0625b02cb9f0971caa1f26a3a9f05392753"},{"author":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"change_message_id":"a5a097a2af04434973e1216bef8cf65faf9e6d92","unresolved":false,"context_lines":[{"line_number":77,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":78,"context_line":"\t\t./test/test_xor_hd_code"},{"line_number":79,"context_line":"\t@$(LD_LIBRARY_PATH) $(DYLD_LIBRARY_PATH) $(DYLD_FALLBACK_LIBRARY_PATH) $(VALGRIND_EXEC_COMMAND) \\"},{"line_number":80,"context_line":"\t\t./test/.libs/libec_slap"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"CLEANFILES \u003d cscope.in.out cscope.out cscope.po.out"},{"line_number":83,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"fa31d9ce_34a47906","line":80,"in_reply_to":"fa31d9ce_53c04050","updated":"2017-02-16 00:48:21.000000000","message":"Would it be simpler to use valgrind\u0027s `--trace-children\u003dyes` option?","commit_id":"fbfcd0625b02cb9f0971caa1f26a3a9f05392753"}],"src/erasurecode.c":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"54f78d92128ed96f0172ee308651f4e74025f445","unresolved":false,"context_lines":[{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    if (fragment_len \u003c sizeof(fragment_header_t)) {"},{"line_number":591,"context_line":"        log_error(\"Fragments not long enough to include headers! \""},{"line_number":592,"context_line":"                  \"Need %lu, but got %lu.\", sizeof(fragment_header_t), fragment_len);"},{"line_number":593,"context_line":"        ret \u003d -EBADHEADER;"},{"line_number":594,"context_line":"        goto out;"},{"line_number":595,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"fa31d9ce_1c7742a0","line":592,"updated":"2017-02-17 18:18:16.000000000","message":"We know fragment_len is less than sizeof(fragment_header_t), so I think we can safely cast it to a size_t and use %zu for the format strings, as in http://paste.openstack.org/show/599452/.\n\nWithout something like that, compilation fails on my Mac (which we supposedly support, if only though manual testing) with\n\n error: format specifies type \u0027unsigned long\u0027 but the argument has type \u0027uint64_t\u0027 (aka \u0027unsigned long long\u0027)","commit_id":"f560f32fe77ee05229ae6197dd40bd1406d96b78"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"99e3b03bc70e1279154a6311a5d61f7e57b7e15c","unresolved":false,"context_lines":[{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    if (fragment_len \u003c sizeof(fragment_header_t)) {"},{"line_number":591,"context_line":"        log_error(\"Fragments not long enough to include headers! \""},{"line_number":592,"context_line":"                  \"Need %lu, but got %lu.\", sizeof(fragment_header_t), fragment_len);"},{"line_number":593,"context_line":"        ret \u003d -EBADHEADER;"},{"line_number":594,"context_line":"        goto out;"},{"line_number":595,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"da36d5c6_7f577302","line":592,"in_reply_to":"fa31d9ce_1c7742a0","updated":"2017-02-20 15:17:23.000000000","message":"Or, \"Need %zu, but got %llu.\" to match the actual type?\n\nExactly, it looks a safe cast but i think it seems just a type definition difference on the log message.\n\nEr... once I tried to that, it also results into an failure as\n\nerasurecode.c:591:9: error: format \u0027%llu\u0027 expects argument of type \u0027long long unsigned int\u0027, but argument 4 has type \u0027uint64_t\u0027 [-Werror\u003dformat\u003d]\n\nok, it seems like to use casting here looks enough way for us.","commit_id":"f560f32fe77ee05229ae6197dd40bd1406d96b78"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"4e671a74f468283162a3c8c9c699622598984dff","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                  \"Need %lu, but got %lu.\", sizeof(fragment_header_t), fragment_len);"},{"line_number":593,"context_line":"        ret \u003d -EBADHEADER;"},{"line_number":594,"context_line":"        goto out;"},{"line_number":595,"context_line":"    }"},{"line_number":596,"context_line":"    for (i \u003d 0; i \u003c num_fragments; ++i) {"},{"line_number":597,"context_line":"        /* Verify metadata checksum */"},{"line_number":598,"context_line":"        if (is_invalid_fragment_header("}],"source_content_type":"text/x-csrc","patch_set":5,"id":"da36d5c6_43b6678b","line":595,"updated":"2017-02-20 06:41:54.000000000","message":"*sigh* I suppose this means we ought to fix test_decode_invalid_args() to also try with fake_data that\u0027s long enough to be a valid fragment...","commit_id":"f560f32fe77ee05229ae6197dd40bd1406d96b78"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"99e3b03bc70e1279154a6311a5d61f7e57b7e15c","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                  \"Need %lu, but got %lu.\", sizeof(fragment_header_t), fragment_len);"},{"line_number":593,"context_line":"        ret \u003d -EBADHEADER;"},{"line_number":594,"context_line":"        goto out;"},{"line_number":595,"context_line":"    }"},{"line_number":596,"context_line":"    for (i \u003d 0; i \u003c num_fragments; ++i) {"},{"line_number":597,"context_line":"        /* Verify metadata checksum */"},{"line_number":598,"context_line":"        if (is_invalid_fragment_header("}],"source_content_type":"text/x-csrc","patch_set":5,"id":"da36d5c6_7ae781e4","line":595,"in_reply_to":"da36d5c6_43b6678b","updated":"2017-02-20 15:17:23.000000000","message":"Yes, I found the issue. I will fix also the tests.","commit_id":"f560f32fe77ee05229ae6197dd40bd1406d96b78"}],"test/liberasurecode_test.c":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8138aa71876eb6f4cb4b43642a0936f81e282193","unresolved":false,"context_lines":[{"line_number":677,"context_line":""},{"line_number":678,"context_line":"    // encoded_fragment_len is too small"},{"line_number":679,"context_line":"    rc \u003d liberasurecode_decode(desc, avail_frags, num_avail_frags,"},{"line_number":680,"context_line":"                               1, 1, \u0026decoded_data, \u0026decoded_data_len);"},{"line_number":681,"context_line":"    assert(rc \u003d\u003d -EBADHEADER);"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    cleanup_avail_frags(avail_frags, num_avail_frags);"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"da36d5c6_d16cd39e","line":680,"range":{"start_line":680,"start_character":31,"end_line":680,"end_character":32},"updated":"2017-02-20 15:51:17.000000000","message":"Nice. May as well re-use the buffer :-)","commit_id":"c9136a62b6e7cc8701cd7206ef0367520a20b8b9"}]}
