Add ptr check in stmt execute parse stage
This commit is contained in:
@ -2458,8 +2458,11 @@ int ObMPStmtExecute::parse_param_value(ObIAllocator &allocator,
|
||||
// 4. merge all this info
|
||||
char *tmp = static_cast<char*>(piece->get_allocator()->alloc(length));
|
||||
int64_t pos = 0;
|
||||
MEMSET(tmp, 0, length);
|
||||
if (OB_FAIL(ObMySQLUtil::store_length(tmp, length, count, pos))) {
|
||||
if (OB_ISNULL(tmp)) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_WARN("failed to alloc memory", K(ret));
|
||||
} else if (FALSE_IT(MEMSET(tmp, 0, length))) {
|
||||
} else if (OB_FAIL(ObMySQLUtil::store_length(tmp, length, count, pos))) {
|
||||
LOG_WARN("store length fail.", K(ret), K(stmt_id_), K(param_id));
|
||||
} else {
|
||||
MEMCPY(tmp+pos, is_null_map, bitmap_bytes);
|
||||
@ -2497,8 +2500,11 @@ int ObMPStmtExecute::parse_param_value(ObIAllocator &allocator,
|
||||
} else {
|
||||
char *tmp = static_cast<char*>(piece->get_allocator()->alloc(length));
|
||||
int64_t pos = 0;
|
||||
MEMSET(tmp, 0, length);
|
||||
if (OB_FAIL(ObMySQLUtil::store_obstr(tmp, length, str_buf.at(0).string(), pos))) {
|
||||
if (OB_ISNULL(tmp)) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_WARN("failed to alloc memory", K(ret));
|
||||
} else if (FALSE_IT(MEMSET(tmp, 0, length))) {
|
||||
} else if (OB_FAIL(ObMySQLUtil::store_obstr(tmp, length, str_buf.at(0).string(), pos))) {
|
||||
LOG_WARN("store string fail.", K(ret), K(stmt_id_), K(param_id));
|
||||
} else {
|
||||
const char* src = tmp;
|
||||
|
Reference in New Issue
Block a user