Private
Public Access
2
0

common.hpp: Handle const char* nullptrs

Fixes for possible NULL pointer dereferencing by C++ header methods.
Updated string methods to return an empty string.

Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
Noel Eck
2018-03-14 10:54:10 -07:00
parent fa40262d89
commit 7021096fd7

View File

@@ -143,30 +143,31 @@ adcSupportedBits()
} }
/** /**
* Return Platform Name. Returns NULL if no platform inited. * Return platform name.
* *
* @return platform name * @return platform name or empty string if not initialised
*/ */
inline std::string inline std::string
getPlatformName() getPlatformName()
{ {
std::string ret_val(mraa_get_platform_name()); std::string ret_val;
const char * pn = mraa_get_platform_name();
if (pn) ret_val = pn;
return ret_val; return ret_val;
} }
/** /**
* Return platform versioning info. Returns NULL if no info present. * Return platform versioning info.
* *
* @param platform_offset optional subplatform identifier * @param platform_offset optional subplatform identifier
* @return platform versioning info * @return platform versioning info or empty string if no info is present
*/ */
inline std::string inline std::string
getPlatformVersion(int platform_offset=MRAA_MAIN_PLATFORM_OFFSET) getPlatformVersion(int platform_offset=MRAA_MAIN_PLATFORM_OFFSET)
{ {
std::string ret_val; std::string ret_val;
const char* pv = mraa_get_platform_version(platform_offset); const char* pv = mraa_get_platform_version(platform_offset);
if (pv != NULL) if (pv) ret_val = pv;
ret_val = pv;
return ret_val; return ret_val;
} }
@@ -222,12 +223,14 @@ getI2cBusId(int i2c_bus)
* *
* @param pin number * @param pin number
* *
* @return char* of pin name * @return Pin name or empty string on failure
*/ */
inline std::string inline std::string
getPinName(int pin) getPinName(int pin)
{ {
std::string ret_val(mraa_get_pin_name(pin)); std::string ret_val;
const char* pn = mraa_get_pin_name(pin);
if (pn) ret_val = pn;
return ret_val; return ret_val;
} }