Giter VIP home page Giter VIP logo

libsnowflakeclient's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libsnowflakeclient's Issues

SNOW-301850: CVE-2020-8284 (Low) detected in curlcurl-7_68_0

CVE-2020-8284 - Low Severity Vulnerability

Vulnerable Library - curlcurl-7_68_0

A command line tool and library for transferring data with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features

Library home page: https://github.com/bagder/curl.git

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerable Source Files (1)

libsnowflakeclient/deps/curl-7.68.0/src/tool_cfgable.c

Vulnerability Details

A malicious server can use the FTP PASV response to trick curl 7.73.0 and earlier into connecting back to a given IP address and port, and this way potentially make curl extract information about services that are otherwise private and not disclosed, for example doing port scanning and service banner extractions.

Publish Date: 2020-12-14

URL: CVE-2020-8284

CVSS 3 Score Details (3.7)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: None
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: https://curl.se/docs/CVE-2020-8284.html

Release Date: 2020-07-21

Fix Resolution: 7.74.0

SNOW-176651: Wrong result with timestamp with precision 0

For a simple queries like following:
select '2020-07-1'::timestamp_ltz(0)
select '2020-07-1'::timestamp_ntz(0)
select '2020-07-1'::timestamp_tz(0)
select '2020-07-1'::timestamp(0)
The results is Dec 30 1899.... I.e., tm_year, tm_mon ... fields of tm are all uninitialized.

valgrind_test_simple_put intermittently fails

https://travis-ci.org/snowflakedb/libsnowflakeclient/jobs/370839838

54: Test command: /usr/bin/valgrind "--tool=memcheck" "--leak-check=full" "--error-exitcode=1" "--suppressions=/home/travis/build/snowflakedb/libsnowflakeclient/tests/utils/valgrind_suppressions.txt" "./test_parallel_upload"
54: Test timeout computed to be: 9.99988e+06
54: ==9527== Memcheck, a memory error detector
54: ==9527== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
54: ==9527== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
54: ==9527== Command: ./test_parallel_upload
54: ==9527== 
54: [==========] Running 2 test(s).
54: [ RUN      ] test_small_file_concurrent_upload
54: [       OK ] test_small_file_concurrent_upload
54: [ RUN      ] test_large_file_multipart_upload
54: [  ERROR   ] --- 0 != 0x3a980
54: [   LINE   ] --- /home/travis/build/snowflakedb/libsnowflakeclient/tests/test_parallel_upload.cpp:98: error: Failure!
54: [  FAILED  ] test_large_file_multipart_upload
54: [==========] 2 test(s) run.
54: [  PASSED  ] 1 test(s).
54: [  FAILED  ] 1 test(s), listed below:
54: [  FAILED  ] test_large_file_multipart_upload
54: 
54:  1 FAILED TEST(S)
54: ==9527== 
54: ==9527== HEAP SUMMARY:
54: ==9527==     in use at exit: 76,739 bytes in 50 blocks
54: ==9527==   total heap usage: 693,815 allocs, 693,766 frees, 120,581,481 bytes allocated
54: ==9527== 
54: ==9527== 34 bytes in 1 blocks are definitely lost in loss record 18 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x541A10: Snowflake::Client::StageInfo::StageInfo(SF_STAGE_INFO*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x533C36: Snowflake::Client::PutGetParseResponse::PutGetParseResponse(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53426E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 40 bytes in 1 blocks are definitely lost in loss record 21 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x534D35: std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::operator=(std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53430E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 47 bytes in 1 blocks are definitely lost in loss record 23 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5419FF: Snowflake::Client::StageInfo::StageInfo(SF_STAGE_INFO*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x533C36: Snowflake::Client::PutGetParseResponse::PutGetParseResponse(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53426E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 49 bytes in 1 blocks are definitely lost in loss record 24 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x533BB8: Snowflake::Client::PutGetParseResponse::PutGetParseResponse(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53426E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 55 bytes in 1 blocks are definitely lost in loss record 25 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x518AB5: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 61 bytes in 1 blocks are definitely lost in loss record 26 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x533BF6: Snowflake::Client::PutGetParseResponse::PutGetParseResponse(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53426E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 86 bytes in 1 blocks are definitely lost in loss record 30 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5419EE: Snowflake::Client::StageInfo::StageInfo(SF_STAGE_INFO*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x533C36: Snowflake::Client::PutGetParseResponse::PutGetParseResponse(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53426E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 102 bytes in 1 blocks are definitely lost in loss record 31 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x573F736: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57413CF: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5188F3: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 107 bytes in 1 blocks are definitely lost in loss record 32 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x574048A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5740533: std::string::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57407BD: std::string::append(char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x51895C: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 116 (8 direct, 108 indirect) bytes in 1 blocks are definitely lost in loss record 34 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x535405: std::vector<std::string, std::allocator<std::string> >::operator=(std::vector<std::string, std::allocator<std::string> > const&) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5342AA: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 135 bytes in 1 blocks are definitely lost in loss record 36 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x574048A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5740533: std::string::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57407BD: std::string::append(char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x517820: getDataDirectory(std::string&) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518938: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 189 bytes in 1 blocks are definitely lost in loss record 39 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x574048A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5740533: std::string::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57407BD: std::string::append(char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x51898B: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 204 (32 direct, 172 indirect) bytes in 1 blocks are definitely lost in loss record 40 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x534ADD: void std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_assign<std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::operator=(std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&)::{lambda(std::__detail::_Hash_node<std::pair<std::string const, char*>, true> const*)#2}>(std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&, std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::operator=(std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&)::{lambda(std::__detail::_Hash_node<std::pair<std::string const, char*>, true> const*)#2} const&) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x534D9B: std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::operator=(std::_Hashtable<std::string, std::pair<std::string const, char*>, std::allocator<std::pair<std::string const, char*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53430E: Snowflake::Client::PutGetParseResponse::updateWith(SF_PUT_GET_RESPONSE*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53158C: Snowflake::Client::StatementPutGet::parsePutGetCommand(std::string*, Snowflake::Client::PutGetParseResponse*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x53047F: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 213 bytes in 1 blocks are definitely lost in loss record 41 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x573F618: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x574048A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5740533: std::string::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x57407BD: std::string::append(char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
54: ==9527==    by 0x5189E2: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 693 (32 direct, 661 indirect) bytes in 1 blocks are definitely lost in loss record 47 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x52FC70: Snowflake::Client::FileTransferAgent::upload(Snowflake::Client::StageInfo*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5304B6: Snowflake::Client::FileTransferAgent::execute(std::string*) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x518A39: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== 1,904 (16 direct, 1,888 indirect) bytes in 1 blocks are definitely lost in loss record 48 of 49
54: ==9527==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
54: ==9527==    by 0x518A0E: test_parallel_upload_core(int) (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5493DC: cmocka_run_one_test_or_fixture (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x5499B9: _cmocka_run_group_tests (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527==    by 0x512309: main (in /home/travis/build/snowflakedb/libsnowflakeclient/cmake-build/tests/test_parallel_upload)
54: ==9527== 
54: ==9527== LEAK SUMMARY:
54: ==9527==    definitely lost: 1,206 bytes in 16 blocks
54: ==9527==    indirectly lost: 2,829 bytes in 33 blocks
54: ==9527==      possibly lost: 0 bytes in 0 blocks
54: ==9527==    still reachable: 72,704 bytes in 1 blocks
54: ==9527==         suppressed: 0 bytes in 0 blocks
54: ==9527== Reachable blocks (those to which a pointer was found) are not shown.
54: ==9527== To see them, rerun with: --leak-check=full --show-leak-kinds=all
54: ==9527== 
54: ==9527== For counts of detected and suppressed errors, rerun with: -v
54: ==9527== ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 1 from 1)
27/33 Test #54: valgrind_test_parallel_upload ...........***Failed   37.26 sec
test 56
      Start 56: valgrind_test_simple_put

Shared library build

I tried adding the ability to build a SHARED library exporting the signatures in client.h but it fails due to the included libraries being static. Is this a stupid idea? any idea how to get this to work?

SNOW-301855: CVE-2019-13116 (High) detected in commons-collections-3.2.jar

CVE-2019-13116 - High Severity Vulnerability

Vulnerable Library - commons-collections-3.2.jar

Types that extend and augment the Java Collections Framework.

Library home page: http://jakarta.apache.org/commons/collections/

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: /home/wss-scanner/.m2/repository/commons-collections/commons-collections/3.2/commons-collections-3.2.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Root Library)
    • commons-collections-3.2.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

The MuleSoft Mule Community Edition runtime engine before 3.8 allows remote attackers to execute arbitrary code because of Java Deserialization, related to Apache Commons Collections

Publish Date: 2019-10-16

URL: CVE-2019-13116

CVSS 3 Score Details (9.8)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-13116

Release Date: 2019-10-16

Fix Resolution: commons-collections:commons-collections:3.2.2

Syntax error when compiling on macOS.

I got this error when compiling the lasted release (0.2.5) of libsnowflakeclient on macOS 10.11

/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:59:33: error: use of undeclared identifier 'strtoul'
        m_port = (unsigned int) strtoul(proxy.substr(pos, (proxy.length()) - pos).c_str(), nullptr, 10);
                                ^
/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:74:14: error: no member named 'getenv' in namespace 'std'
    if (std::getenv("all_proxy")) {
        ~~~~~^
/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:75:22: error: no member named 'getenv' in namespace 'std'
        proxy = std::getenv("all_proxy");
                ~~~~~^
/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:76:21: error: no member named 'getenv' in namespace 'std'
    } else if (std::getenv("https_proxy")) {
               ~~~~~^
/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:77:22: error: no member named 'getenv' in namespace 'std'
        proxy = std::getenv("https_proxy");
                ~~~~~^
/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:78:21: error: no member named 'getenv' in namespace 'std'
    } else if (std::getenv("http_proxy")) {
               ~~~~~^
/Users/huy/Desktop/libsnowflakeclient-0.2.5/cpp/util/Proxy.cpp:79:22: error: no member named 'getenv' in namespace 'std'
        proxy = std::getenv("http_proxy");

It is fixed if I added this line in the Proxy.hpp

 #include <cstdlib>

And one minor issue that the lib says its version is 0.2.3 but your tag release is 0.2.5

SNOW-301851: CVE-2020-13959 (Medium) detected in velocity-tools-2.0.jar

CVE-2020-13959 - Medium Severity Vulnerability

Vulnerable Library - velocity-tools-2.0.jar

VelocityTools is an integrated collection of Velocity subprojects with the common goal of creating tools and infrastructure to speed and ease development of both web and non-web applications using the Velocity template engine.

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: canner/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

The default error page for VelocityView in Apache Velocity Tools prior to 3.1 reflects back the vm file that was entered as part of the URL. An attacker can set an XSS payload file as this vm file in the URL which results in this payload being executed. XSS vulnerabilities allow attackers to execute arbitrary JavaScript in the context of the attacked website and the attacked user. This can be abused to steal session cookies, perform requests in the name of the victim or for phishing attacks.

Publish Date: 2021-03-10

URL: CVE-2020-13959

CVSS 3 Score Details (6.1)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-fh63-4r66-jc7v

Release Date: 2021-03-10

Fix Resolution: org.apache.velocity.tools:velocity-tools-view:3.1


⛑️ Automatic Remediation is available for this issue

Honor Different Timestamp Output Formats

Right now we don't honor or support timestamp output formats besides the default format. Lets add this functionality in to improve timestamp support and allow other libraries that consume the C API to have this timestamp output format support.

Wrapping in a gem file for ruby access

I've been able to wrap the lib into a gem file for ruby. It works, BUT when I try to build into a debian unix build (rather than just a Macos build), I get linker errors on libz.a. Any ideas?

libz.a(inflate.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
../../../../ext/ruby_snowflake_client/../../lib/libz.a: error adding symbols: Bad value

I see that libz.a is just packaged here and not built.

Compiler warnings

The compiler warnings show up in the Mac Build

2018-07-02 17:55:44 /Users/Shared/Jenkins/Home/jobs/ODBC-Mac64/workspace/ODBC/Source/libsnowflakeclient/cpp/FileTransferExecutionResult.cpp:7:32: warning: extra tokens at end of #include directive [-Wextra-tokens]
2018-07-02 17:55:44 #include "snowflake/platform.h";
2018-07-02 17:55:44                                ^
2018-07-02 17:55:44                                //
2018-07-02 17:55:44 /Users/Shared/Jenkins/Home/jobs/ODBC-Mac64/workspace/ODBC/Source/libsnowflakeclient/cpp/FileTransferExecutionResult.cpp:138:13: warning: enumeration value 'UNKNOWN' not handled in switch [-Wswitch]
2018-07-02 17:55:44     switch (m_commandType)
2018-07-02 17:55:44             ^
2018-07-02 17:55:44 2 warnings generated.
2018-07-02 17:55:44 /Users/Shared/Jenkins/Home/jobs/ODBC-Mac64/workspace/ODBC/Source/libsnowflakeclient/cpp/FileTransferExecutionResult.cpp:7:32: warning: extra tokens at end of #include directive [-Wextra-tokens]
2018-07-02 17:55:44 #include "snowflake/platform.h";
2018-07-02 17:55:44                                ^
2018-07-02 17:55:44                                //
2018-07-02 17:55:44 /Users/Shared/Jenkins/Home/jobs/ODBC-Mac64/workspace/ODBC/Source/libsnowflakeclient/cpp/FileTransferExecutionResult.cpp:138:13: warning: enumeration value 'UNKNOWN' not handled in switch [-Wswitch]
2018-07-02 17:55:44     switch (m_commandType)
2018-07-02 17:55:44             ^
2018-07-02 17:55:44 2 warnings generated.

Please fix all warnings and set -Werror to the build scripts.

SNOW-301848: CVE-2019-10086 (High) detected in commons-beanutils-1.7.0.jar

CVE-2019-10086 - High Severity Vulnerability

Vulnerable Library - commons-beanutils-1.7.0.jar

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: /home/wss-scanner/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Root Library)
    • commons-beanutils-1.7.0.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

In Apache Commons Beanutils 1.9.2, a special BeanIntrospector class was added which allows suppressing the ability for an attacker to access the classloader via the class property available on all Java objects. We, however were not using this by default characteristic of the PropertyUtilsBean.

Publish Date: 2019-08-20

URL: CVE-2019-10086

CVSS 2 Score Details (7.5)

Base Score Metrics not available

Suggested Fix

Type: Change files

Origin: apache/commons-beanutils@62e82ad

Release Date: 2019-06-06

Fix Resolution: Replace or update the following files: Jira520TestCase.java, BeanIntrospectionDataTestCase.java, PropertyUtilsBean.java, changes.xml, Jira157TestCase.java, pom.xml

[Windows] Missing aws in deps-build

I'm using Visual Studio 15 (2017) to build snowflake lib but got some errors:

screen shot 2018-11-12 at 4 06 26 pm

After checking the deps-build, there is no aws (darwin and linux have aws in deps-build)

Sessions are not killed

I'm using libsnowflakeclient in a desktop app. After the connection was established, I killed the app. The session was not killed.
If I go to this page: xxxx.snowflakecomputing.com/console#/account/sessions all the sessions are there.
It's only killed if I run snowflake_term(sf)

Test failures

This is what happens when I try to run the tests.

vagrant@ubuntu:~/proj/libsnowflakeclient$ ./scripts/run_tests.sh
==> Test Connection Parameters
SNOWFLAKE_TEST_USER=niklasrosencrantz
SNOWFLAKE_TEST_ACCOUNT=scania
SNOWFLAKE_TEST_SCHEMA=myschema
SNOWFLAKE_TEST_ROLE=snowpipe1
SNOWFLAKE_TEST_DATABASE=mydb
SNOWFLAKE_TEST_WAREHOUSE=demo_wh
UpdateCTestConfiguration  from :/home/vagrant/proj/libsnowflakeclient/cmake-build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/vagrant/proj/libsnowflakeclient/cmake-build/DartConfiguration.tcl
Test project /home/vagrant/proj/libsnowflakeclient/cmake-build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
      Start  1: test_unit_connect_parameters

1: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_unit_connect_parameters
1: Test timeout computed to be: 9.99988e+06
1: [==========] Running 5 test(s).
1: [ RUN      ] test_connection_parameters_default_port
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          517: application name: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          518: application version: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          519: authenticator: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          520: user: testuser
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          521: password: ****
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          522: host: testaccount.snowflakecomputing.com
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          523: port: 443
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          524: account: testaccount
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          525: region: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          526: database: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          527: schema: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          528: warehouse: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          529: role: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          530: protocol: https
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          531: autocommit: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          532: insecure_mode: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          533: timezone: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          534: login_timeout: 0
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          535: network_timeout: 0
1: [       OK ] test_connection_parameters_default_port
1: [ RUN      ] test_connection_parameters_no_host
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          517: application name: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          518: application version: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          519: authenticator: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          520: user: testuser
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          521: password: ****
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          522: host: testaccount.snowflakecomputing.com
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          523: port: 443
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          524: account: testaccount
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          525: region: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          526: database: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          527: schema: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          528: warehouse: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          529: role: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          530: protocol: https
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          531: autocommit: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          532: insecure_mode: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          533: timezone: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          534: login_timeout: 0
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          535: network_timeout: 0
1: [       OK ] test_connection_parameters_no_host
1: [ RUN      ] test_connection_parameters_with_region
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          517: application name: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          518: application version: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          519: authenticator: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          520: user: testuser
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          521: password: ****
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          522: host: testaccount.somewhere.snowflakecomputing.com
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          523: port: 443
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          524: account: testaccount
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          525: region: somewhere
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          526: database: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          527: schema: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          528: warehouse: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          529: role: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          530: protocol: https
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          531: autocommit: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          532: insecure_mode: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          533: timezone: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          534: login_timeout: 0
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          535: network_timeout: 0
1: [       OK ] test_connection_parameters_with_region
1: [ RUN      ] test_connection_parameters_including_region
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          517: application name: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          518: application version: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          519: authenticator: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          520: user: testuser
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          521: password: ****
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          522: host: testaccount.somewhere.snowflakecomputing.com
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          523: port: 443
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          524: account: testaccount
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          525: region: somewhere
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          526: database: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          527: schema: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          528: warehouse: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          529: role: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          530: protocol: https
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          531: autocommit: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          532: insecure_mode: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          533: timezone: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          534: login_timeout: 0
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          535: network_timeout: 0
1: [       OK ] test_connection_parameters_including_region
1: [ RUN      ] test_connection_parameters_including_region_including_dot
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          517: application name: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          518: application version: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          519: authenticator: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          520: user: testuser
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          521: password: ****
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          522: host: testaccount.somewhere.here.there.snowflakecomputing.com
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          523: port: 443
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          524: account: testaccount
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          525: region: somewhere.here.there
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          526: database: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          527: schema: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          528: warehouse: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          529: role: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          530: protocol: https
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          531: autocommit: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          532: insecure_mode: false
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          533: timezone: (null)
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          534: login_timeout: 0
1: 2018-08-28 13:05:31.892 DEBUG C     client.c          535: network_timeout: 0
1: [       OK ] test_connection_parameters_including_region_including_dot
1: [==========] 5 test(s) run.
1: [  PASSED  ] 5 test(s).
 1/36 Test  #1: test_unit_connect_parameters .....   Passed    0.01 sec
test 2
      Start  2: test_unit_logger

2: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_unit_logger
2: Test timeout computed to be: 9.99988e+06
2: [==========] Running 1 test(s).
2: [ RUN      ] test_log_str_to_level
2: [       OK ] test_log_str_to_level
2: [==========] 1 test(s) run.
2: [  PASSED  ] 1 test(s).
 2/36 Test  #2: test_unit_logger .................   Passed    0.00 sec
test 3
      Start  3: test_connect

3: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_connect
3: Test timeout computed to be: 9.99988e+06
3: [==========] Running 4 test(s).
3: [ RUN      ] test_null_sf_connect
3: [       OK ] test_null_sf_connect
3: [ RUN      ] test_no_connection_parameters
3: [       OK ] test_no_connection_parameters
3: [ RUN      ] test_connect_with_minimum_parameters
3: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
3: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
3: [  ERROR   ] --- 0x3a980 != 0
3: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_connect.c:57: error: Failure!
3: [  FAILED  ] test_connect_with_minimum_parameters
3: [ RUN      ] test_connect_with_full_parameters
3: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
3: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
3: [  ERROR   ] --- 0x3a980 != 0
3: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_connect.c:71: error: Failure!
3: [  FAILED  ] test_connect_with_full_parameters
3: [==========] 4 test(s) run.
3: [  PASSED  ] 2 test(s).
3: [  FAILED  ] 2 test(s), listed below:
3: [  FAILED  ] test_connect_with_minimum_parameters
3: [  FAILED  ] test_connect_with_full_parameters
3:
3:  2 FAILED TEST(S)
 3/36 Test  #3: test_connect .....................***Failed    0.04 sec
test 4
      Start  4: test_connect_negative

4: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_connect_negative
4: Test timeout computed to be: 9.99988e+06
4: [==========] Running 7 test(s).
4: [ RUN      ] test_connect_account_missing
4: [       OK ] test_connect_account_missing
4: [ RUN      ] test_connect_user_missing
4: [       OK ] test_connect_user_missing
4: [ RUN      ] test_connect_password_missing
4: [       OK ] test_connect_password_missing
4: [ RUN      ] test_connect_invalid_database
4: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
4: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
4: [  ERROR   ] --- 0x3a98c != 0x3a98e
4: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_connect_negative.c:68: error: Failure!
4: [  FAILED  ] test_connect_invalid_database
4: [ RUN      ] test_connect_invalid_schema
4: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
4: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
4: [  ERROR   ] --- 0x3a98c != 0x3a98e
4: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_connect_negative.c:83: error: Failure!
4: [  FAILED  ] test_connect_invalid_schema
4: [ RUN      ] test_connect_invalid_warehouse
4: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
4: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
4: [  ERROR   ] --- 0x3a98c != 0x3a98e
4: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_connect_negative.c:98: error: Failure!
4: [  FAILED  ] test_connect_invalid_warehouse
4: [ RUN      ] test_connect_invalid_role
4: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
4: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
4: [  ERROR   ] --- 0x3a98c != 0x5f42d
4: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_connect_negative.c:113: error: Failure!
4: [  FAILED  ] test_connect_invalid_role
4: [==========] 7 test(s) run.
4: [  PASSED  ] 3 test(s).
4: [  FAILED  ] 4 test(s), listed below:
4: [  FAILED  ] test_connect_invalid_database
4: [  FAILED  ] test_connect_invalid_schema
4: [  FAILED  ] test_connect_invalid_warehouse
4: [  FAILED  ] test_connect_invalid_role
4:
4:  4 FAILED TEST(S)
 4/36 Test  #4: test_connect_negative ............***Failed    0.04 sec
test 5
      Start  5: test_bind_params

5: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_bind_params
5: Test timeout computed to be: 9.99988e+06
5: [==========] Running 1 test(s).
5: [ RUN      ] test_bind_parameters
5: [  ERROR   ] --- 0x3a980 != 0
5: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_bind_params.c:22: error: Failure!
5: [  FAILED  ] test_bind_parameters
5: [==========] 1 test(s) run.
5: [  PASSED  ] 0 test(s).
5: [  FAILED  ] 1 test(s), listed below:
5: [  FAILED  ] test_bind_parameters
5:
5:  1 FAILED TEST(S)
 5/36 Test  #5: test_bind_params .................***Failed    0.02 sec
test 6
      Start  6: test_bind_results

6: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_bind_results
6: Test timeout computed to be: 9.99988e+06
6: [==========] Running 1 test(s).
6: [ RUN      ] test_bind_results
6: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
6: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
6: [  ERROR   ] --- 0x3a980 != 0
6: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_bind_results.c:20: error: Failure!
6: [  FAILED  ] test_bind_results
6: [==========] 1 test(s) run.
6: [  PASSED  ] 0 test(s).
6: [  FAILED  ] 1 test(s), listed below:
6: [  FAILED  ] test_bind_results
6:
6:  1 FAILED TEST(S)
 6/36 Test  #6: test_bind_results ................***Failed    0.01 sec
test 7
      Start  7: test_change_current

7: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_change_current
7: Test timeout computed to be: 9.99988e+06
7: [==========] Running 1 test(s).
7: [ RUN      ] test_change_current_schema
7: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
7: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
7: [  ERROR   ] --- 0x3a980 != 0
7: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_change_current.c:15: error: Failure!
7: [  FAILED  ] test_change_current_schema
7: [==========] 1 test(s) run.
7: [  PASSED  ] 0 test(s).
7: [  FAILED  ] 1 test(s), listed below:
7: [  FAILED  ] test_change_current_schema
7:
7:  1 FAILED TEST(S)
 7/36 Test  #7: test_change_current ..............***Failed    0.01 sec
test 8
      Start  8: test_select1

8: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_select1
8: Test timeout computed to be: 9.99988e+06
8: [==========] Running 1 test(s).
8: [ RUN      ] test_select1
8: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
8: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
8: [  ERROR   ] --- 0x3a980 != 0
8: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_select1.c:13: error: Failure!
8: [  FAILED  ] test_select1
8: [==========] 1 test(s) run.
8: [  PASSED  ] 0 test(s).
8: [  FAILED  ] 1 test(s), listed below:
8: [  FAILED  ] test_select1
8:
8:  1 FAILED TEST(S)
 8/36 Test  #8: test_select1 .....................***Failed    0.01 sec
test 9
      Start  9: test_check_ctypes

9: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_check_ctypes
9: Test timeout computed to be: 9.99988e+06
9: [==========] Running 1 test(s).
9: [ RUN      ] test_check_c_types
9: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
9: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
9: [  ERROR   ] --- 0x3a980 != 0
9: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_check_ctypes.c:15: error: Failure!
9: [  FAILED  ] test_check_c_types
9: [==========] 1 test(s) run.
9: [  PASSED  ] 0 test(s).
9: [  FAILED  ] 1 test(s), listed below:
9: [  FAILED  ] test_check_c_types
9:
9:  1 FAILED TEST(S)
 9/36 Test  #9: test_check_ctypes ................***Failed    0.02 sec
test 10
      Start 10: test_crud

10: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_crud
10: Test timeout computed to be: 9.99988e+06
10: [==========] Running 1 test(s).
10: [ RUN      ] test_crud
10: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
10: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
10: [  ERROR   ] --- 0x3a980 != 0
10: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_crud.c:87: error: Failure!
10: [  FAILED  ] test_crud
10: [==========] 1 test(s) run.
10: [  PASSED  ] 0 test(s).
10: [  FAILED  ] 1 test(s), listed below:
10: [  FAILED  ] test_crud
10:
10:  1 FAILED TEST(S)
10/36 Test #10: test_crud ........................***Failed    0.02 sec
test 11
      Start 11: test_error_handlings

11: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_error_handlings
11: Test timeout computed to be: 9.99988e+06
11: [==========] Running 2 test(s).
11: [ RUN      ] test_syntax_error
11: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
11: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
11: [  ERROR   ] --- 0x3a980 != 0
11: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_error_handlings.c:12: error: Failure!
11: [  FAILED  ] test_syntax_error
11: [ RUN      ] test_incorrect_password
11: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
11: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
11: [  ERROR   ] --- 0x3a98c != 0x5f3d4
11: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_error_handlings.c:38: error: Failure!
11: [  FAILED  ] test_incorrect_password
11: [==========] 2 test(s) run.
11: [  PASSED  ] 0 test(s).
11: [  FAILED  ] 2 test(s), listed below:
11: [  FAILED  ] test_syntax_error
11: [  FAILED  ] test_incorrect_password
11:
11:  2 FAILED TEST(S)
11/36 Test #11: test_error_handlings .............***Failed    0.05 sec
test 12
      Start 12: test_large_result_set

12: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_large_result_set
12: Test timeout computed to be: 9.99988e+06
12: [==========] Running 1 test(s).
12: [ RUN      ] test_large_result_set
12: [  ERROR   ] --- Test failed with exception: Segmentation fault(11)
12: [  FAILED  ] test_large_result_set
12: [==========] 1 test(s) run.
12: [  PASSED  ] 0 test(s).
12: [  FAILED  ] 1 test(s), listed below:
12: [  FAILED  ] test_large_result_set
12:
12:  1 FAILED TEST(S)
12/36 Test #12: test_large_result_set ............***Failed    0.01 sec
test 13
      Start 13: test_transaction

13: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_transaction
13: Test timeout computed to be: 9.99988e+06
13: [==========] Running 1 test(s).
13: [ RUN      ] test_transaction
13: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
13: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
13: [  ERROR   ] --- 0x3a980 != 0
13: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_transaction.c:16: error: Failure!
13: [  FAILED  ] test_transaction
13: [==========] 1 test(s) run.
13: [  PASSED  ] 0 test(s).
13: [  FAILED  ] 1 test(s), listed below:
13: [  FAILED  ] test_transaction
13:
13:  1 FAILED TEST(S)
13/36 Test #13: test_transaction .................***Failed    0.01 sec
test 14
      Start 14: test_ping_pong

14: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_ping_pong
14: Test timeout computed to be: 9.99988e+06
14: [==========] Running 1 test(s).
14: [ RUN      ] test_ping_pong
14: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
14: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
14: [  ERROR   ] --- 0x3a980 != 0
14: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_ping_pong.c:15: error: Failure!
14: [  FAILED  ] test_ping_pong
14: [==========] 1 test(s) run.
14: [  PASSED  ] 0 test(s).
14: [  FAILED  ] 1 test(s), listed below:
14: [  FAILED  ] test_ping_pong
14:
14:  1 FAILED TEST(S)
14/36 Test #14: test_ping_pong ...................***Failed    0.02 sec
test 15
      Start 15: test_stmt_with_bad_connect

15: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_stmt_with_bad_connect
15: Test timeout computed to be: 9.99988e+06
15: [==========] Running 1 test(s).
15: [ RUN      ] test_no_connect_and_retry
15: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
15: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
15: [  ERROR   ] --- 0x3a980 != 0
15: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_stmt_with_bad_connect.c:50: error: Failure!
15: [  FAILED  ] test_no_connect_and_retry
15: [==========] 1 test(s) run.
15: [  PASSED  ] 0 test(s).
15: [  FAILED  ] 1 test(s), listed below:
15: [  FAILED  ] test_no_connect_and_retry
15:
15:  1 FAILED TEST(S)
15/36 Test #15: test_stmt_with_bad_connect .......***Failed    0.02 sec
test 16
      Start 16: test_binary

16: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_binary
16: Test timeout computed to be: 9.99988e+06
16: [==========] Running 1 test(s).
16: [ RUN      ] test_selectbin
16: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
16: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
16: [  ERROR   ] --- 0x3a980 != 0
16: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_binary.c:30: error: Failure!
16: [  FAILED  ] test_selectbin
16: [==========] 1 test(s) run.
16: [  PASSED  ] 0 test(s).
16: [  FAILED  ] 1 test(s), listed below:
16: [  FAILED  ] test_selectbin
16:
16:  1 FAILED TEST(S)
16/36 Test #16: test_binary ......................***Failed    0.01 sec
test 17
      Start 17: test_bool

17: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_bool
17: Test timeout computed to be: 9.99988e+06
17: [==========] Running 1 test(s).
17: [ RUN      ] test_bool
17: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
17: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
17: [  ERROR   ] --- 0x3a980 != 0
17: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_bool.c:35: error: Failure!
17: [  FAILED  ] test_bool
17: [==========] 1 test(s) run.
17: [  PASSED  ] 0 test(s).
17: [  FAILED  ] 1 test(s), listed below:
17: [  FAILED  ] test_bool
17:
17:  1 FAILED TEST(S)
17/36 Test #17: test_bool ........................***Failed    0.01 sec
test 18
      Start 18: test_null

18: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_null
18: Test timeout computed to be: 9.99988e+06
18: [==========] Running 1 test(s).
18: [ RUN      ] test_null
18: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
18: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
18: [  ERROR   ] --- 0x3a980 != 0
18: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_null.c:34: error: Failure!
18: [  FAILED  ] test_null
18: [==========] 1 test(s) run.
18: [  PASSED  ] 0 test(s).
18: [  FAILED  ] 1 test(s), listed below:
18: [  FAILED  ] test_null
18:
18:  1 FAILED TEST(S)
18/36 Test #18: test_null ........................***Failed    0.01 sec
test 19
      Start 19: test_number

19: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_number
19: Test timeout computed to be: 9.99988e+06
19: [==========] Running 1 test(s).
19: [ RUN      ] test_number
19: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
19: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
19: [  ERROR   ] --- 0x3a980 != 0
19: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_number.c:32: error: Failure!
19: [  FAILED  ] test_number
19: [==========] 1 test(s) run.
19: [  PASSED  ] 0 test(s).
19: [  FAILED  ] 1 test(s), listed below:
19: [  FAILED  ] test_number
19:
19:  1 FAILED TEST(S)
19/36 Test #19: test_number ......................***Failed    0.01 sec
test 20
      Start 20: test_variant

20: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_variant
20: Test timeout computed to be: 9.99988e+06
20: [==========] Running 1 test(s).
20: [ RUN      ] test_variant
20: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
20: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
20: [  ERROR   ] --- 0x3a980 != 0
20: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_variant.c:15: error: Failure!
20: [  FAILED  ] test_variant
20: [==========] 1 test(s) run.
20: [  PASSED  ] 0 test(s).
20: [  FAILED  ] 1 test(s), listed below:
20: [  FAILED  ] test_variant
20:
20:  1 FAILED TEST(S)
20/36 Test #20: test_variant .....................***Failed    0.01 sec
test 21
      Start 21: test_time

21: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_time
21: Test timeout computed to be: 9.99988e+06
21: [==========] Running 1 test(s).
21: [ RUN      ] test_time
21: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
21: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
21: [  ERROR   ] --- 0x3a980 != 0
21: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_time.c:32: error: Failure!
21: [  FAILED  ] test_time
21: [==========] 1 test(s) run.
21: [  PASSED  ] 0 test(s).
21: [  FAILED  ] 1 test(s), listed below:
21: [  FAILED  ] test_time
21:
21:  1 FAILED TEST(S)
21/36 Test #21: test_time ........................***Failed    0.01 sec
test 22
      Start 22: test_timestamp_ntz

22: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_timestamp_ntz
22: Test timeout computed to be: 9.99988e+06
22: [==========] Running 1 test(s).
22: [ RUN      ] test_timestamp_ntz
22: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
22: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
22: [  ERROR   ] --- 0x3a980 != 0
22: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_timestamp_ntz.c:42: error: Failure!
22: [  FAILED  ] test_timestamp_ntz
22: [==========] 1 test(s) run.
22: [  PASSED  ] 0 test(s).
22: [  FAILED  ] 1 test(s), listed below:
22: [  FAILED  ] test_timestamp_ntz
22:
22:  1 FAILED TEST(S)
22/36 Test #22: test_timestamp_ntz ...............***Failed    0.01 sec
test 23
      Start 23: test_timestamp_ltz

23: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_timestamp_ltz
23: Test timeout computed to be: 9.99988e+06
23: [==========] Running 1 test(s).
23: [ RUN      ] test_timestamp_ltz
23: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
23: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
23: [  ERROR   ] --- 0x3a980 != 0
23: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_timestamp_ltz.c:50: error: Failure!
23: [  FAILED  ] test_timestamp_ltz
23: [==========] 1 test(s) run.
23: [  PASSED  ] 0 test(s).
23: [  FAILED  ] 1 test(s), listed below:
23: [  FAILED  ] test_timestamp_ltz
23:
23:  1 FAILED TEST(S)
23/36 Test #23: test_timestamp_ltz ...............***Failed    0.02 sec
test 24
      Start 24: test_timestamp_tz

24: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_timestamp_tz
24: Test timeout computed to be: 9.99988e+06
24: [==========] Running 1 test(s).
24: [ RUN      ] test_timestamp_tz
24: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
24: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
24: [  ERROR   ] --- 0x3a980 != 0
24: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_timestamp_tz.c:51: error: Failure!
24: [  FAILED  ] test_timestamp_tz
24: [==========] 1 test(s) run.
24: [  PASSED  ] 0 test(s).
24: [  FAILED  ] 1 test(s), listed below:
24: [  FAILED  ] test_timestamp_tz
24:
24:  1 FAILED TEST(S)
24/36 Test #24: test_timestamp_tz ................***Failed    0.02 sec
test 25
      Start 25: test_timezone

25: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_timezone
25: Test timeout computed to be: 9.99988e+06
25: [==========] Running 1 test(s).
25: [ RUN      ] test_timezone
25: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
25: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
25: [  ERROR   ] --- 0x3a980 != 0
25: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_timezone.c:18: error: Failure!
25: [  FAILED  ] test_timezone
25: [==========] 1 test(s) run.
25: [  PASSED  ] 0 test(s).
25: [  FAILED  ] 1 test(s), listed below:
25: [  FAILED  ] test_timezone
25:
25:  1 FAILED TEST(S)
25/36 Test #25: test_timezone ....................***Failed    0.01 sec
test 26
      Start 26: test_adjust_fetch_data

26: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_adjust_fetch_data
26: Test timeout computed to be: 9.99988e+06
26: [==========] Running 1 test(s).
26: [ RUN      ] test_select_long_data_with_small_initial_buffer
26: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
26: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
26: [  ERROR   ] --- 0x3a980 != 0
26: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_adjust_fetch_data.c:18: error: Failure!
26: [  FAILED  ] test_select_long_data_with_small_initial_buffer
26: [==========] 1 test(s) run.
26: [  PASSED  ] 0 test(s).
26: [  FAILED  ] 1 test(s), listed below:
26: [  FAILED  ] test_select_long_data_with_small_initial_buffer
26:
26:  1 FAILED TEST(S)
26/36 Test #26: test_adjust_fetch_data ...........***Failed    0.01 sec
test 27
      Start 27: test_issue_76

27: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_issue_76
27: Test timeout computed to be: 9.99988e+06
27: [==========] Running 1 test(s).
27: [ RUN      ] test_issue_76
27: Error code: 240012, message: curl_easy_perform() failed: Failure when receiving data from the peer
27: In File, /home/vagrant/proj/libsnowflakeclient/lib/connection.c, Line, 889
27: [  ERROR   ] --- 0x3a980 != 0
27: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_issue_76.c:14: error: Failure!
27: [  FAILED  ] test_issue_76
27: [==========] 1 test(s) run.
27: [  PASSED  ] 0 test(s).
27: [  FAILED  ] 1 test(s), listed below:
27: [  FAILED  ] test_issue_76
27:
27:  1 FAILED TEST(S)
27/36 Test #27: test_issue_76 ....................***Failed    0.01 sec
test 28
      Start 28: test_include_aws

28: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_include_aws
28: Test timeout computed to be: 9.99988e+06
28: [==========] Running 1 test(s).
28: [ RUN      ] test_include_aws
28: [       OK ] test_include_aws
28: [==========] 1 test(s) run.
28: [  PASSED  ] 1 test(s).
28/36 Test #28: test_include_aws .................   Passed    0.01 sec
test 29
      Start 29: test_parallel_upload_download

29: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_parallel_upload_download
29: Test timeout computed to be: 9.99988e+06
29: [==========] Running 2 test(s).
29: [ RUN      ] test_small_file_concurrent_upload_download
29: [  ERROR   ] --- 0 != 0x3a980
29: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_parallel_upload_download.cpp:58: error: Failure!
29: [  FAILED  ] test_small_file_concurrent_upload_download
29: [ RUN      ] test_large_file_multipart_upload
29: [  ERROR   ] --- 0 != 0x3a980
29: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_parallel_upload_download.cpp:58: error: Failure!
29: [  FAILED  ] test_large_file_multipart_upload
29: [==========] 2 test(s) run.
29: [  PASSED  ] 0 test(s).
29: [  FAILED  ] 2 test(s), listed below:
29: [  FAILED  ] test_small_file_concurrent_upload_download
29: [  FAILED  ] test_large_file_multipart_upload
29:
29:  2 FAILED TEST(S)
29/36 Test #29: test_parallel_upload_download ....***Failed    0.05 sec
test 30
      Start 30: test_simple_put

30: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_simple_put
30: Test timeout computed to be: 9.99988e+06
30: [==========] Running 7 test(s).
30: [ RUN      ] test_simple_put_auto_compress
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:31: error: Failure!
30: [  FAILED  ] test_simple_put_auto_compress
30: [ RUN      ] test_simple_put_auto_detect_gzip
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:31: error: Failure!
30: [  FAILED  ] test_simple_put_auto_detect_gzip
30: [ RUN      ] test_simple_put_no_compress
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:31: error: Failure!
30: [  FAILED  ] test_simple_put_no_compress
30: [ RUN      ] test_simple_put_gzip
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:31: error: Failure!
30: [  FAILED  ] test_simple_put_gzip
30: [ RUN      ] test_simple_put_zero_byte
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:31: error: Failure!
30: [  FAILED  ] test_simple_put_zero_byte
30: [ RUN      ] test_simple_put_one_byte
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:31: error: Failure!
30: [  FAILED  ] test_simple_put_one_byte
30: [ RUN      ] test_simple_put_skip
30: [  ERROR   ] --- 0 != 0x3a980
30: [   LINE   ] --- /home/vagrant/proj/libsnowflakeclient/tests/test_simple_put.cpp:216: error: Failure!
30: [  FAILED  ] test_simple_put_skip
30: [==========] 7 test(s) run.
30: [  PASSED  ] 0 test(s).
30: [  FAILED  ] 7 test(s), listed below:
30: [  FAILED  ] test_simple_put_auto_compress
30: [  FAILED  ] test_simple_put_auto_detect_gzip
30: [  FAILED  ] test_simple_put_no_compress
30: [  FAILED  ] test_simple_put_gzip
30: [  FAILED  ] test_simple_put_zero_byte
30: [  FAILED  ] test_simple_put_one_byte
30: [  FAILED  ] test_simple_put_skip
30:
30:  7 FAILED TEST(S)
30/36 Test #30: test_simple_put ..................***Failed    0.14 sec
test 31
      Start 31: test_unit_cipher_stream_buf

31: Test command: /home/vagrant/proj/libsnowflakeclient/cmake-build/tests/test_unit_cipher_stream_buf
31: Test timeout computed to be: 9.99988e+06
31: [==========] Running 3 test(s).
31: [ RUN      ] test_cipher_stream_buf_zero
31: [       OK ] test_cipher_stream_buf_zero
31: [ RUN      ] test_cipher_stream_buf_one

Allow nil log_path.

We use libsnowflake in a database GUI client. In our particular situation, we do not need the client to create a log file so we do the global init:

      snowflake_global_init(nil, SF_LOG_FATAL, nil)

The problem is the log_init(const char *log_path, SF_LOG_LEVEL log_level) in the file lib/client.c return error which results in the global init fails, and it skips init the header

And final it crashes in the https://github.com/snowflakedb/libsnowflakeclient/blob/master/lib/connection.c#L280 when we attempt to establish a connection because the SF_HEADER_USER_AGENT is NULL.

SNOW-301853: CVE-2008-2025 (Medium) detected in struts-taglib-1.3.8.jar

CVE-2008-2025 - Medium Severity Vulnerability

Vulnerable Library - struts-taglib-1.3.8.jar

Apache Struts

Library home page: http://struts.apache.org

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: /home/wss-scanner/.m2/repository/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Root Library)
    • struts-taglib-1.3.8.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

Cross-site scripting (XSS) vulnerability in Apache Struts before 1.2.9-162.31.1 on SUSE Linux Enterprise (SLE) 11, before 1.2.9-108.2 on SUSE openSUSE 10.3, before 1.2.9-198.2 on SUSE openSUSE 11.0, and before 1.2.9-162.163.2 on SUSE openSUSE 11.1 allows remote attackers to inject arbitrary web script or HTML via unspecified vectors related to "insufficient quoting of parameters."

Publish Date: 2009-04-09

URL: CVE-2008-2025

CVSS 2 Score Details (4.3)

Base Score Metrics not available

Suggested Fix

Type: Upgrade version

Origin: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-2025

Release Date: 2009-04-09

Fix Resolution: org.apache.struts:struts-taglib:1.4.0

SNOW-249674: Unable to build AWS dep on MacOSX 11.0

Hi

I'm trying to build libsnowflakeclient on MacOsx 11.0.1, but when running build_dependencies.sh, it stops on aws_sdk_cpp building because of :

[INFO] Building x64 Binary
-- Found Git: /usr/bin/git (found version "2.24.3 (Apple Git-128)") 
CMake Warning (dev) at cmake/resolve_platform.cmake:7 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "APPLE" will no longer be dereferenced when the
  policy is set to NEW.  Since the policy is not set the OLD behavior will be
  used.
Call Stack (most recent call first):
  CMakeLists.txt:80 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- TARGET_ARCH not specified; inferring host OS to be platform compilation target
-- Building AWS libraries as static objects
fatal: not a git repository: '/tmp'
-- Building project version: 1.3.50
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libz.tbd (found version "1.2.11") 
--   Zlib include directory: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/include
--   Zlib library: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libz.tbd
-- Encryption: CommonCrypto
-- Http client: Curl
-- Found CURL: /Users/laurent/dev/libsnowflakeclient/scripts/../deps-build/darwin/Debug/curl/lib (found version "7.64.1")  
--   Curl include directory: /Users/laurent/dev/libsnowflakeclient/deps-build/darwin/Debug/curl/include
--   Curl library: /Users/laurent/dev/libsnowflakeclient/scripts/../deps-build/darwin/Debug/curl/lib
-- Considering s3
-- The C compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Updating version info to 1.3.50
-- Custom memory management disabled
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    OPENSSL_ROOT_DIR
    OPENSSL_USE_STATIC_LIBS


-- Build files have been written to: /Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/cmake-build-Debug
Scanning dependencies of target aws-cpp-sdk-core
[  0%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/AmazonSerializableWebServiceRequest.cpp.o
[  0%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/AmazonStreamingWebServiceRequest.cpp.o
[  0%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/AmazonWebServiceRequest.cpp.o
[  1%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/Aws.cpp.o
[  1%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/Globals.cpp.o
[  1%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/Version.cpp.o
[  2%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/auth/AWSAuthSigner.cpp.o
[  2%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/auth/AWSAuthSignerProvider.cpp.o
[  2%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/auth/AWSCredentialsProvider.cpp.o
[  2%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/auth/AWSCredentialsProviderChain.cpp.o
[  3%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/client/AWSClient.cpp.o
[  3%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/client/AWSErrorMarshaller.cpp.o
[  3%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/client/AsyncCallerContext.cpp.o
[  4%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/client/ClientConfiguration.cpp.o
[  4%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/client/CoreErrors.cpp.o
[  4%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/client/DefaultRetryStrategy.cpp.o
[  5%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/config/AWSProfileConfigLoader.cpp.o
[  5%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/external/json-cpp/jsoncpp.cpp.o
[  5%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/external/tinyxml2/tinyxml2.cpp.o
[  5%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/HttpClient.cpp.o
[  6%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/HttpClientFactory.cpp.o
[  6%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/HttpRequest.cpp.o
[  6%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/HttpTypes.cpp.o
[  7%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/Scheme.cpp.o
[  7%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/URI.cpp.o
[  7%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/curl/CurlHandleContainer.cpp.o
[  8%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/curl/CurlHttpClient.cpp.o
[  8%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/standard/StandardHttpRequest.cpp.o
[  8%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/http/standard/StandardHttpResponse.cpp.o
[  8%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/internal/AWSHttpResourceClient.cpp.o
[  9%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/platform/linux-shared/Environment.cpp.o
[  9%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/platform/linux-shared/FileSystem.cpp.o
In file included from /Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/source/platform/linux-shared/FileSystem.cpp:15:
In file included from /Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/include/aws/core/platform/FileSystem.h:18:
In file included from /Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/include/aws/core/utils/memory/stl/AWSVector.h:20:
In file included from /Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/include/aws/core/utils/memory/stl/AWSAllocator.h:21:
In file included from /Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/include/aws/core/utils/memory/AWSMemory.h:22:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:3607:5: error: destructor called on non-final 'Aws::FileSystem::PosixDirectory' that has virtual functions but
      non-virtual destructor [-Werror,-Wdelete-non-abstract-non-virtual-dtor]
    __data_.second().~_Tp();
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function
      'std::__1::__shared_ptr_emplace<Aws::FileSystem::PosixDirectory, std::__1::allocator<Aws::FileSystem::PosixDirectory> >::__on_zero_shared' requested here
        __shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
        ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4200:9: note: in instantiation of function template specialization
      'std::__1::__shared_ptr_emplace<Aws::FileSystem::PosixDirectory, std::__1::allocator<Aws::FileSystem::PosixDirectory> >::__shared_ptr_emplace<const std::__1::basic_string<char> &, const std::__1::basic_string<char>
      &>' requested here
        _CntrlBlk(__a, _VSTD::forward<_Args>(__args)...);
        ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4420:29: note: in instantiation of function template specialization
      'std::__1::shared_ptr<Aws::FileSystem::PosixDirectory>::allocate_shared<std::__1::allocator<Aws::FileSystem::PosixDirectory>, const std::__1::basic_string<char> &, const std::__1::basic_string<char> &>' requested here
    return shared_ptr<_Tp>::allocate_shared(__a, _VSTD::forward<_Args>(__args)...);
                            ^
/Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/include/aws/core/utils/memory/stl/AWSAllocator.h:106:21: note: in instantiation of function template specialization
      'std::__1::allocate_shared<Aws::FileSystem::PosixDirectory, std::__1::allocator<Aws::FileSystem::PosixDirectory>, const std::__1::basic_string<char> &, const std::__1::basic_string<char> &>' requested here
        return std::allocate_shared<T, Aws::Allocator<T>>(Aws::Allocator<T>(), std::forward<ArgTypes>(args)...);
                    ^
/Users/laurent/dev/libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/aws-cpp-sdk-core/source/platform/linux-shared/FileSystem.cpp:273:17: note: in instantiation of function template specialization
      'Aws::MakeShared<Aws::FileSystem::PosixDirectory, const std::__1::basic_string<char> &, const std::__1::basic_string<char> &>' requested here
    return Aws::MakeShared<PosixDirectory>(FILE_SYSTEM_UTILS_LOG_TAG, path, relativePath);
                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
    __data_.second().~_Tp();
                      ^
1 error generated.
make[2]: *** [aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/platform/linux-shared/FileSystem.cpp.o] Error 1
make[1]: *** [aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/all] Error 2

Thanks for your help

Some long lasting queries issue

If I'm not making any mistake in using libSFClient, some long lasting queries will finish with status 0, without actually finishing and returning anything.
For instance some query like 'select 11 as c1 from table(generator(timelimit=>100));' will finish in less than 50 sec with status = success and no results.

SNOW-301849: CVE-2020-8285 (High) detected in curlcurl-7_68_0

CVE-2020-8285 - High Severity Vulnerability

Vulnerable Library - curlcurl-7_68_0

A command line tool and library for transferring data with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features

Library home page: https://github.com/bagder/curl.git

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerable Source Files (2)

libsnowflakeclient/deps/curl-7.68.0/lib/ftp.c
libsnowflakeclient/deps/curl-7.68.0/lib/ftp.c

Vulnerability Details

curl 7.21.0 to and including 7.73.0 is vulnerable to uncontrolled recursion due to a stack overflow issue in FTP wildcard match parsing.

Publish Date: 2020-12-14

URL: CVE-2020-8285

CVSS 3 Score Details (7.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: None
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: https://curl.se/docs/CVE-2020-8285.html

Release Date: 2020-07-21

Fix Resolution: 7.74.0

valgrind shows an error in ex_lange_result_set test.

Moving a ticket from snowflakedb/pdo_snowflake#15.

valgrind --tool=memcheck --leak-check=full --run-libc-freeres=no cmake-build/examples/ex_large_result_set 
==18216== 
==18216== HEAP SUMMARY:
==18216==     in use at exit: 8,765 bytes in 67 blocks
==18216==   total heap usage: 1,149,211 allocs, 1,149,144 frees, 94,986,522,734 bytes allocated
==18216== 
==18216== 1,120 bytes in 2 blocks are possibly lost in loss record 22 of 25
==18216==    at 0x4A057BB: calloc (vg_replace_malloc.c:593)
==18216==    by 0x39D3811D02: _dl_allocate_tls (in /lib64/ld-2.12.so)
==18216==    by 0x39D44072CC: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
==18216==    by 0x45E61E: chunk_downloader_init (chunk_downloader.c:285)
==18216==    by 0x453A10: snowflake_execute (client.c:1491)
==18216==    by 0x452108: snowflake_query (client.c:983)
==18216==    by 0x44F3FB: main (large_result_set.c:31)
==18216== 
==18216== LEAK SUMMARY:
==18216==    definitely lost: 0 bytes in 0 blocks
==18216==    indirectly lost: 0 bytes in 0 blocks
==18216==      possibly lost: 1,120 bytes in 2 blocks
==18216==    still reachable: 7,645 bytes in 65 blocks
==18216==         suppressed: 0 bytes in 0 blocks
==18216== Reachable blocks (those to which a pointer was found) are not shown.
==18216== To see them, rerun with: --leak-check=full --show-reachable=yes
==18216== 
==18216== For counts of detected and suppressed errors, rerun with: -v
==18216== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 8 from 6)

SNOW-301854: CVE-2016-1181 (High) detected in struts-core-1.3.8.jar

CVE-2016-1181 - High Severity Vulnerability

Vulnerable Library - struts-core-1.3.8.jar

Apache Struts

Library home page: http://struts.apache.org

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: /home/wss-scanner/.m2/repository/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Root Library)
    • struts-core-1.3.8.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

ActionServlet.java in Apache Struts 1 1.x through 1.3.10 mishandles multithreaded access to an ActionForm instance, which allows remote attackers to execute arbitrary code or cause a denial of service (unexpected memory access) via a multipart request, a related issue to CVE-2015-0899.

Publish Date: 2016-07-04

URL: CVE-2016-1181

CVSS 3 Score Details (8.1)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Change files

Origin: kawasima/struts1-forever@eda3a79

Release Date: 2016-06-08

Fix Resolution: Replace or update the following file: ActionServlet.java

SNOW-172949: An insert or update query always returns zero count for 'number of rows inserted/updated'

If you run a INSERT statement through this library, it returns one record with one column titled 'number of rows inserted'. The value for this record is always zero (although snowflake_affected_rows does return the proper count).

If you run a UPDATE statement through this library, it returns one record with two columns titled 'number of rows updated' and 'number of multi-joined rows updated'. The value for this record is always zero (although snowflake_affected_rows does return a count -- but for only one of those columns).

SNOW-301852: CVE-2016-1182 (High) detected in struts-core-1.3.8.jar

CVE-2016-1182 - High Severity Vulnerability

Vulnerable Library - struts-core-1.3.8.jar

Apache Struts

Library home page: http://struts.apache.org

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: /home/wss-scanner/.m2/repository/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Root Library)
    • struts-core-1.3.8.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

ActionServlet.java in Apache Struts 1 1.x through 1.3.10 does not properly restrict the Validator configuration, which allows remote attackers to conduct cross-site scripting (XSS) attacks or cause a denial of service via crafted input, a related issue to CVE-2015-0899.

Publish Date: 2016-07-04

URL: CVE-2016-1182

CVSS 3 Score Details (8.2)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: Low
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Change files

Origin: apache/struts1@eda3a79

Release Date: 2016-06-08

Fix Resolution: Replace or update the following file: ActionServlet.java

SNOW-301846: CVE-2020-8231 (High) detected in curlcurl-7_68_0

CVE-2020-8231 - High Severity Vulnerability

Vulnerable Library - curlcurl-7_68_0

A command line tool and library for transferring data with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features

Library home page: https://github.com/bagder/curl.git

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerable Source Files (3)

libsnowflakeclient/deps/curl-7.68.0/lib/connect.c
libsnowflakeclient/deps/curl-7.68.0/lib/multi.c
libsnowflakeclient/deps/curl-7.68.0/lib/multi.c

Vulnerability Details

Due to use of a dangling pointer, libcurl 7.29.0 through 7.71.1 can use the wrong connection when sending data.

Publish Date: 2020-12-14

URL: CVE-2020-8231

CVSS 3 Score Details (7.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: None
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: https://github.com/curl/curl/tree/curl-7_72_0

Release Date: 2020-07-21

Fix Resolution: curl-7_72_0

Review logging

Goals

  • Ensure the log includes required info for debug.
  • Ensure the log can be enabled and disabled as the customer needs.
  • Ensure the log location can be specified.
  • Ensure the log doesn't include sensitive information, i.e., password, private key

SNOW-301847: CVE-2015-4852 (High) detected in commons-collections-3.2.jar

CVE-2015-4852 - High Severity Vulnerability

Vulnerable Library - commons-collections-3.2.jar

Types that extend and augment the Java Collections Framework.

Library home page: http://jakarta.apache.org/commons/collections/

Path to dependency file: libsnowflakeclient/deps/aws-sdk-cpp-1.3.50/code-generation/generator/pom.xml

Path to vulnerable library: /home/wss-scanner/.m2/repository/commons-collections/commons-collections/3.2/commons-collections-3.2.jar

Dependency Hierarchy:

  • velocity-tools-2.0.jar (Root Library)
    • commons-collections-3.2.jar (Vulnerable Library)

Found in HEAD commit: 5b110184c4e8c439495907c7d1359fe4eb4f8a6c

Found in base branch: master

Vulnerability Details

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers to execute arbitrary commands via a crafted serialized Java object in T3 protocol traffic to TCP port 7001, related to oracle_common/modules/com.bea.core.apache.commons.collections.jar. NOTE: the scope of this CVE is limited to the WebLogic Server product.

Publish Date: 2015-11-18

URL: CVE-2015-4852

CVSS 2 Score Details (7.5)

Base Score Metrics not available

Suggested Fix

Type: Upgrade version

Origin: https://www.openwall.com/lists/oss-security/2015/11/17/19

Release Date: 2015-11-18

Fix Resolution: commons-collections:commons-collections:3.2.2

Inconsistent behavior for put command on AWS when overwrite=false

According to the document, https://docs.snowflake.net/manuals/sql-reference/sql/put.html
when overwrite=false, the uploading should be skipped if there is an existing file with the same name.
But on AWS, the uploading is skipped only when both file name and checksum are the same. It also could cause crash if the server doesn't return checksum of the existing file. On Azure, only file name is checked.

We need consistent behavior across the cloud providers, change the behavior on AWS so that only file name is checked.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.