)]}'
{"cbcrypto/file_utilities.cc":[{"author":{"_account_id":1005235,"name":"Pavlos Georgiou","email":"pavlos.georgiou@couchbase.com","username":"pavlosg","avatars":[{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"56331c1c03757ff16fac4f7505c37465f05d4085","unresolved":true,"context_lines":[{"line_number":21,"context_line":"namespace cb::crypto {"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"static std::string getEncryptionKey(const std::filesystem::path\u0026 path) {"},{"line_number":24,"context_line":"    std::array\u003cchar, sizeof(cb::crypto::EncryptedFileHeader)\u003e buffer;"},{"line_number":25,"context_line":"    auto size \u003d file_size(path);"},{"line_number":26,"context_line":"    if (size \u003c buffer.size()) {"},{"line_number":27,"context_line":"        // No header present"}],"source_content_type":"text/x-c","patch_set":4,"id":"e0be2216_302f9f76","line":24,"range":{"start_line":24,"start_character":62,"end_line":24,"end_character":68},"updated":"2025-03-04 14:26:05.000000000","message":"Why not just have an EncryptedFileHeader variable and cast the pointer to char* in one place?\n\nCasting to char* is defined behaviour, the opposite is not.","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1005235,"name":"Pavlos Georgiou","email":"pavlos.georgiou@couchbase.com","username":"pavlosg","avatars":[{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"187f0631ec3bd18a7dfa6b240379de5de355b1e6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"namespace cb::crypto {"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"static std::string getEncryptionKey(const std::filesystem::path\u0026 path) {"},{"line_number":24,"context_line":"    std::array\u003cchar, sizeof(cb::crypto::EncryptedFileHeader)\u003e buffer;"},{"line_number":25,"context_line":"    auto size \u003d file_size(path);"},{"line_number":26,"context_line":"    if (size \u003c buffer.size()) {"},{"line_number":27,"context_line":"        // No header present"}],"source_content_type":"text/x-c","patch_set":4,"id":"df902355_0dc065b1","line":24,"range":{"start_line":24,"start_character":62,"end_line":24,"end_character":68},"in_reply_to":"9484eed5_5ec9da09","updated":"2025-03-04 15:36:58.000000000","message":"Acknowledged","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cff43cab60ddb76bd6705905900da047f0c420db","unresolved":true,"context_lines":[{"line_number":21,"context_line":"namespace cb::crypto {"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"static std::string getEncryptionKey(const std::filesystem::path\u0026 path) {"},{"line_number":24,"context_line":"    std::array\u003cchar, sizeof(cb::crypto::EncryptedFileHeader)\u003e buffer;"},{"line_number":25,"context_line":"    auto size \u003d file_size(path);"},{"line_number":26,"context_line":"    if (size \u003c buffer.size()) {"},{"line_number":27,"context_line":"        // No header present"}],"source_content_type":"text/x-c","patch_set":4,"id":"eb03368f_3c41654e","line":24,"range":{"start_line":24,"start_character":62,"end_line":24,"end_character":68},"in_reply_to":"e0be2216_302f9f76","updated":"2025-03-04 14:34:19.000000000","message":"we could always do that, but at the same time we do the same kind of casting in numerous places in our code (for instance for every single command received over the wire...)","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"13b4db00373a0f2c6b5c3ae8c8b041ef475e92b4","unresolved":true,"context_lines":[{"line_number":21,"context_line":"namespace cb::crypto {"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"static std::string getEncryptionKey(const std::filesystem::path\u0026 path) {"},{"line_number":24,"context_line":"    std::array\u003cchar, sizeof(cb::crypto::EncryptedFileHeader)\u003e buffer;"},{"line_number":25,"context_line":"    auto size \u003d file_size(path);"},{"line_number":26,"context_line":"    if (size \u003c buffer.size()) {"},{"line_number":27,"context_line":"        // No header present"}],"source_content_type":"text/x-c","patch_set":4,"id":"9484eed5_5ec9da09","line":24,"range":{"start_line":24,"start_character":62,"end_line":24,"end_character":68},"in_reply_to":"eb03368f_3c41654e","updated":"2025-03-04 15:15:22.000000000","message":"That would require a new constructor for the EncryptedFileHeader class. Given that we already do this a lot of places there isn\u0027t a huge benefit of refactoring this right now","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1005235,"name":"Pavlos Georgiou","email":"pavlos.georgiou@couchbase.com","username":"pavlosg","avatars":[{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"56331c1c03757ff16fac4f7505c37465f05d4085","unresolved":true,"context_lines":[{"line_number":114,"context_line":"            try {"},{"line_number":115,"context_line":"                auto message \u003d reader-\u003enextChunk();"},{"line_number":116,"context_line":"                if (message.empty()) {"},{"line_number":117,"context_line":"                    eof \u003d true;"},{"line_number":118,"context_line":"                } else {"},{"line_number":119,"context_line":"                    writer-\u003ewrite(message);"},{"line_number":120,"context_line":"                }"}],"source_content_type":"text/x-c","patch_set":4,"id":"10ce73cb_7611e387","line":117,"range":{"start_line":117,"start_character":20,"end_line":117,"end_character":31},"updated":"2025-03-04 14:26:05.000000000","message":"Why not just `break` out of `for(;;)`?","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cff43cab60ddb76bd6705905900da047f0c420db","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            try {"},{"line_number":115,"context_line":"                auto message \u003d reader-\u003enextChunk();"},{"line_number":116,"context_line":"                if (message.empty()) {"},{"line_number":117,"context_line":"                    eof \u003d true;"},{"line_number":118,"context_line":"                } else {"},{"line_number":119,"context_line":"                    writer-\u003ewrite(message);"},{"line_number":120,"context_line":"                }"}],"source_content_type":"text/x-c","patch_set":4,"id":"2f8f69d5_41cd5f92","line":117,"range":{"start_line":117,"start_character":20,"end_line":117,"end_character":31},"in_reply_to":"10ce73cb_7611e387","updated":"2025-03-04 14:34:19.000000000","message":"Because I don\u0027t like that style ;)","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1005235,"name":"Pavlos Georgiou","email":"pavlos.georgiou@couchbase.com","username":"pavlosg","avatars":[{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"56331c1c03757ff16fac4f7505c37465f05d4085","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        }"},{"line_number":126,"context_line":"        writer-\u003eflush();"},{"line_number":127,"context_line":"        writer-\u003eclose();"},{"line_number":128,"context_line":"        rename(tmpfile, path);"},{"line_number":129,"context_line":"        if (encryption_key \u0026\u0026 path.extension() !\u003d \".cef\") {"},{"line_number":130,"context_line":"            auto next \u003d path;"},{"line_number":131,"context_line":"            next.replace_extension(\".cef\");"}],"source_content_type":"text/x-c","patch_set":4,"id":"9390be06_f79f6fb8","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":30},"updated":"2025-03-04 14:26:05.000000000","message":"Can we avoid renaming twice?","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cff43cab60ddb76bd6705905900da047f0c420db","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        }"},{"line_number":126,"context_line":"        writer-\u003eflush();"},{"line_number":127,"context_line":"        writer-\u003eclose();"},{"line_number":128,"context_line":"        rename(tmpfile, path);"},{"line_number":129,"context_line":"        if (encryption_key \u0026\u0026 path.extension() !\u003d \".cef\") {"},{"line_number":130,"context_line":"            auto next \u003d path;"},{"line_number":131,"context_line":"            next.replace_extension(\".cef\");"}],"source_content_type":"text/x-c","patch_set":4,"id":"b4b4bcfa_0723830b","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":30},"in_reply_to":"9390be06_f79f6fb8","updated":"2025-03-04 14:34:19.000000000","message":"One could, but I\u0027m not sure if it would make the code easier to read. In the case the input filename ends up with the correct suffix we would only do a single rename...","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"13b4db00373a0f2c6b5c3ae8c8b041ef475e92b4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        }"},{"line_number":126,"context_line":"        writer-\u003eflush();"},{"line_number":127,"context_line":"        writer-\u003eclose();"},{"line_number":128,"context_line":"        rename(tmpfile, path);"},{"line_number":129,"context_line":"        if (encryption_key \u0026\u0026 path.extension() !\u003d \".cef\") {"},{"line_number":130,"context_line":"            auto next \u003d path;"},{"line_number":131,"context_line":"            next.replace_extension(\".cef\");"}],"source_content_type":"text/x-c","patch_set":4,"id":"7e32ed27_e738c6b7","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":30},"in_reply_to":"b4b4bcfa_0723830b","updated":"2025-03-04 15:15:22.000000000","message":"Done","commit_id":"5302380b65af0ebfb253c46e7e9ac5adfda42400"},{"author":{"_account_id":1005235,"name":"Pavlos Georgiou","email":"pavlos.georgiou@couchbase.com","username":"pavlosg","avatars":[{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/37a23779d2698c24df7ea51f7c1f8d81.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"187f0631ec3bd18a7dfa6b240379de5de355b1e6","unresolved":true,"context_lines":[{"line_number":96,"context_line":"            try {"},{"line_number":97,"context_line":"                key \u003d getEncryptionKey(path);"},{"line_number":98,"context_line":"            } catch (const std::exception\u0026) {"},{"line_number":99,"context_line":"                // @todo what to do?"},{"line_number":100,"context_line":"            }"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-c","patch_set":5,"id":"4ef33cdf_b4041df9","line":99,"range":{"start_line":99,"start_character":16,"end_line":99,"end_character":36},"updated":"2025-03-04 15:36:58.000000000","message":"At least log and `continue`?","commit_id":"e77be6b225740fffbfbbd7a95e2ef603ecb86691"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d2a31d14087cfb145ba3440484fd97ba1aca82d0","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            try {"},{"line_number":97,"context_line":"                key \u003d getEncryptionKey(path);"},{"line_number":98,"context_line":"            } catch (const std::exception\u0026) {"},{"line_number":99,"context_line":"                // @todo what to do?"},{"line_number":100,"context_line":"            }"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-c","patch_set":5,"id":"7c7c900e_08ef63e7","line":99,"range":{"start_line":99,"start_character":16,"end_line":99,"end_character":36},"in_reply_to":"4ef33cdf_b4041df9","updated":"2025-03-04 16:04:14.000000000","message":"Done","commit_id":"e77be6b225740fffbfbbd7a95e2ef603ecb86691"}]}
