From: Ali Maredia Date: Fri, 12 Feb 2016 03:27:57 +0000 (-0500) Subject: cmake: Protect againist getenv returning nullptr X-Git-Tag: v10.2.0~27^2~10 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=de97f67a651da56a9c05980605d6dbf2d645b750;p=ceph.git cmake: Protect againist getenv returning nullptr Signed-off-by: Ali Maredia --- diff --git a/src/test/common/test_blkdev.cc b/src/test/common/test_blkdev.cc index a228c06f224b0..b2379eb929c77 100644 --- a/src/test/common/test_blkdev.cc +++ b/src/test/common/test_blkdev.cc @@ -22,15 +22,16 @@ TEST(blkdev, get_block_device_base) { for (int i=0; i<2; ++i) { string root; if (i == 0) { - string CEPH_ROOT = getenv("CEPH_ROOT"); - root = CEPH_ROOT + "/src/test/common/test_blkdev_sys_block"; + const char* env = getenv("CEPH_ROOT"); + ASSERT_NE(env, nullptr) << "Environment Variable CEPH_ROOT not found!"; + root = string(env) + "/src/test/common/test_blkdev_sys_block"; } set_block_device_sandbox_dir(root.c_str()); // work backwards sprintf(buf, "%s/sys/block", root.c_str()); DIR *dir = opendir(buf); - ASSERT_TRUE(dir); + ASSERT_NE(dir, nullptr); while (!::readdir_r(dir, reinterpret_cast(buf), &de)) { if (!de) break; diff --git a/src/test/compressor/test_compression_plugin.cc b/src/test/compressor/test_compression_plugin.cc index 32e4ba81513ad..45cffafaf318a 100644 --- a/src/test/compressor/test_compression_plugin.cc +++ b/src/test/compressor/test_compression_plugin.cc @@ -27,7 +27,8 @@ TEST(CompressionPlugin, all) { - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + std::string directory(env ? env : "lib"); CompressorRef compressor; PluginRegistry *reg = g_ceph_context->get_plugin_registry(); EXPECT_TRUE(reg); @@ -53,7 +54,8 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); string mkdir_compressor = "mkdir -p " + directory + "/compressor"; int r = system(mkdir_compressor.c_str()); (void)r; diff --git a/src/test/compressor/test_compression_plugin_snappy.cc b/src/test/compressor/test_compression_plugin_snappy.cc index 21537e83a6b18..9e733f4396fcb 100644 --- a/src/test/compressor/test_compression_plugin_snappy.cc +++ b/src/test/compressor/test_compression_plugin_snappy.cc @@ -38,7 +38,8 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + std::string directory(env ? env : "lib"); string mkdir_compressor = "mkdir -p " + directory + "/compressor"; int r = system(mkdir_compressor.c_str()); (void)r; diff --git a/src/test/compressor/test_compression_plugin_zlib.cc b/src/test/compressor/test_compression_plugin_zlib.cc index 0e956a1317b13..5af5d14aa3c08 100644 --- a/src/test/compressor/test_compression_plugin_zlib.cc +++ b/src/test/compressor/test_compression_plugin_zlib.cc @@ -37,12 +37,18 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - int r = system("mkdir -p .libs/compressor"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); + string mkdir_compressor = "mkdir -p " + directory + "/compressor"; + int r = system(mkdir_compressor.c_str()); (void)r; - r = system("cp .libs/libceph_zlib.so* .libs/compressor/"); + + string cp_libceph_zlib = "cp " + directory + "/libceph_zlib.so* " + directory + "/compressor/"; + r = system(cp_libceph_zlib.c_str()); (void)r; - g_conf->set_val("plugin_dir", ".libs", false, false); + g_conf->set_val("plugin_dir", directory, false, false); + ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/src/test/compressor/test_compression_snappy.cc b/src/test/compressor/test_compression_snappy.cc index 37ddbf3b6a823..bbd315cf30887 100644 --- a/src/test/compressor/test_compression_snappy.cc +++ b/src/test/compressor/test_compression_snappy.cc @@ -77,7 +77,8 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("plugin_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/compressor/test_compression_zlib.cc b/src/test/compressor/test_compression_zlib.cc index 0b5248616e9f8..6ba64452f9ba7 100644 --- a/src/test/compressor/test_compression_zlib.cc +++ b/src/test/compressor/test_compression_zlib.cc @@ -15,6 +15,7 @@ */ #include +#include #include #include #include "global/global_init.h" @@ -68,7 +69,9 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - g_conf->set_val("compression_dir", ".libs", false, false); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); + g_conf->set_val("compression_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/src/test/erasure-code/TestErasureCode.cc b/src/test/erasure-code/TestErasureCode.cc index 38b16d2a1af1b..56759c4af1899 100644 --- a/src/test/erasure-code/TestErasureCode.cc +++ b/src/test/erasure-code/TestErasureCode.cc @@ -161,7 +161,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeExample.cc b/src/test/erasure-code/TestErasureCodeExample.cc index b2657cad5dbeb..eff590f479c7e 100644 --- a/src/test/erasure-code/TestErasureCodeExample.cc +++ b/src/test/erasure-code/TestErasureCodeExample.cc @@ -241,8 +241,9 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - char *CEPH_LIB = getenv("CEPH_LIB"); - g_conf->set_val("erasure_code_dir", CEPH_LIB, false, false); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); + g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/src/test/erasure-code/TestErasureCodeIsa.cc b/src/test/erasure-code/TestErasureCodeIsa.cc index 83524908a58a8..9c01e951c6817 100644 --- a/src/test/erasure-code/TestErasureCodeIsa.cc +++ b/src/test/erasure-code/TestErasureCodeIsa.cc @@ -963,7 +963,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeJerasure.cc b/src/test/erasure-code/TestErasureCodeJerasure.cc index 33ae20d8e8351..52d7c685e840b 100644 --- a/src/test/erasure-code/TestErasureCodeJerasure.cc +++ b/src/test/erasure-code/TestErasureCodeJerasure.cc @@ -365,7 +365,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeLrc.cc b/src/test/erasure-code/TestErasureCodeLrc.cc index 955ec7f768837..b9452310af669 100644 --- a/src/test/erasure-code/TestErasureCodeLrc.cc +++ b/src/test/erasure-code/TestErasureCodeLrc.cc @@ -402,7 +402,8 @@ TEST(ErasureCodeLrc, layers_init) ErasureCodeLrc lrc(g_conf->erasure_code_dir); ErasureCodeProfile profile; - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); string description_string = "[ " " [ \"_cDDD_cDD_\", \"directory=" + directory + "\" ]," @@ -915,7 +916,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodePlugin.cc b/src/test/erasure-code/TestErasureCodePlugin.cc index 0e1cd57b1d893..45f1b28168077 100644 --- a/src/test/erasure-code/TestErasureCodePlugin.cc +++ b/src/test/erasure-code/TestErasureCodePlugin.cc @@ -83,7 +83,8 @@ TEST_F(ErasureCodePluginRegistryTest, factory_mutex) { TEST_F(ErasureCodePluginRegistryTest, all) { ErasureCodeProfile profile; - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); ErasureCodeInterfaceRef erasure_code; ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance(); EXPECT_FALSE(erasure_code); @@ -132,7 +133,8 @@ int main(int argc, char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodePluginIsa.cc b/src/test/erasure-code/TestErasureCodePluginIsa.cc index 6af000318561d..1044017df9565 100644 --- a/src/test/erasure-code/TestErasureCodePluginIsa.cc +++ b/src/test/erasure-code/TestErasureCodePluginIsa.cc @@ -60,7 +60,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodePluginJerasure.cc b/src/test/erasure-code/TestErasureCodePluginJerasure.cc index 1a857913fbe7c..f43f296b1fca7 100644 --- a/src/test/erasure-code/TestErasureCodePluginJerasure.cc +++ b/src/test/erasure-code/TestErasureCodePluginJerasure.cc @@ -257,7 +257,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodePluginLrc.cc b/src/test/erasure-code/TestErasureCodePluginLrc.cc index 21fbd803bb456..f88d1cd4fa355 100644 --- a/src/test/erasure-code/TestErasureCodePluginLrc.cc +++ b/src/test/erasure-code/TestErasureCodePluginLrc.cc @@ -48,7 +48,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodePluginShec.cc b/src/test/erasure-code/TestErasureCodePluginShec.cc index cd3adbddc636d..39d552b0111ce 100644 --- a/src/test/erasure-code/TestErasureCodePluginShec.cc +++ b/src/test/erasure-code/TestErasureCodePluginShec.cc @@ -253,7 +253,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeShec.cc b/src/test/erasure-code/TestErasureCodeShec.cc index 7cdde7096c1a6..8da9e69850ae6 100644 --- a/src/test/erasure-code/TestErasureCodeShec.cc +++ b/src/test/erasure-code/TestErasureCodeShec.cc @@ -2675,7 +2675,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeShec_all.cc b/src/test/erasure-code/TestErasureCodeShec_all.cc index 2e19351d662b4..c8715ebe516e6 100644 --- a/src/test/erasure-code/TestErasureCodeShec_all.cc +++ b/src/test/erasure-code/TestErasureCodeShec_all.cc @@ -297,7 +297,8 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeShec_arguments.cc b/src/test/erasure-code/TestErasureCodeShec_arguments.cc index b9b5653ad8987..ea68ab24b0bcc 100644 --- a/src/test/erasure-code/TestErasureCodeShec_arguments.cc +++ b/src/test/erasure-code/TestErasureCodeShec_arguments.cc @@ -396,8 +396,9 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - char *CEPH_LIB = getenv("CEPH_LIB"); - g_conf->set_val("erasure_code_dir", CEPH_LIB, false, false); + const char* env = getenv("CEPH_LIB"); + std::string directory(env ? env : "lib"); + g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/src/test/erasure-code/TestErasureCodeShec_thread.cc b/src/test/erasure-code/TestErasureCodeShec_thread.cc index 34b7bb7351606..3adab597b8725 100644 --- a/src/test/erasure-code/TestErasureCodeShec_thread.cc +++ b/src/test/erasure-code/TestErasureCodeShec_thread.cc @@ -94,8 +94,9 @@ int main(int argc, char **argv) global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); common_init_finish(g_ceph_context); - char *CEPH_LIB = getenv("CEPH_LIB"); - g_conf->set_val("erasure_code_dir", CEPH_LIB, false, false); + const char* env = getenv("CEPH_LIB"); + std::string directory(env ? env : "lib"); + g_conf->set_val("erasure_code_dir", directory, false, false); ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/src/test/erasure-code/ceph_erasure_code.cc b/src/test/erasure-code/ceph_erasure_code.cc index f5e96126ecaea..aaa4304b9b75f 100644 --- a/src/test/erasure-code/ceph_erasure_code.cc +++ b/src/test/erasure-code/ceph_erasure_code.cc @@ -88,7 +88,8 @@ int ErasureCodeCommand::setup(int argc, char** argv) { CINIT_FLAG_NO_DEFAULT_CONFIG_FILE); common_init_finish(g_ceph_context); g_ceph_context->_conf->apply_changes(NULL); - string directory = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + string directory(env ? env : "lib"); g_conf->set_val("erasure_code_dir", directory, false, false); if (vm.count("help")) { diff --git a/src/test/erasure-code/ceph_erasure_code_non_regression.cc b/src/test/erasure-code/ceph_erasure_code_non_regression.cc index eeeeb9f60b096..7b0fa2fe72d33 100644 --- a/src/test/erasure-code/ceph_erasure_code_non_regression.cc +++ b/src/test/erasure-code/ceph_erasure_code_non_regression.cc @@ -100,7 +100,8 @@ int ErasureCodeNonRegression::setup(int argc, char** argv) { CINIT_FLAG_NO_DEFAULT_CONFIG_FILE); common_init_finish(g_ceph_context); g_ceph_context->_conf->apply_changes(NULL); - string libs_dir = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + std::string libs_dir(env ? env : "lib"); g_conf->set_val("erasure_code_dir", libs_dir, false, false); if (vm.count("help")) { diff --git a/src/test/librados_test_stub/TestClassHandler.cc b/src/test/librados_test_stub/TestClassHandler.cc index 22afad649faae..ea595ab1247a0 100644 --- a/src/test/librados_test_stub/TestClassHandler.cc +++ b/src/test/librados_test_stub/TestClassHandler.cc @@ -45,7 +45,8 @@ void TestClassHandler::open_class(const std::string& name, void TestClassHandler::open_all_classes() { assert(m_class_handles.empty()); - string CEPH_LIB = getenv("CEPH_LIB"); + const char* env = getenv("CEPH_LIB"); + std::string CEPH_LIB(env ? env : "lib"); DIR *dir = ::opendir(CEPH_LIB.c_str()); if (dir == NULL) { assert(false);;