fix: null tag caused crash
This commit is contained in:
parent
7867c9405c
commit
3afb857208
2 changed files with 16 additions and 3 deletions
|
@ -43,6 +43,7 @@ static controller_dbo*
|
|||
controller_db_select_mapper(sqlite3_stmt *stmt)
|
||||
{
|
||||
auto *new_controller = new controller_dbo();
|
||||
const char* new_tag;
|
||||
for(int i = 0; i < sqlite3_column_count(stmt); i++)
|
||||
{
|
||||
const char *name = sqlite3_column_name(stmt, i);
|
||||
|
@ -74,7 +75,12 @@ controller_db_select_mapper(sqlite3_stmt *stmt)
|
|||
new_controller->relay_count = sqlite3_column_int(stmt, i);
|
||||
break;
|
||||
case 't': // tag
|
||||
strncpy(new_controller->tag, (const char*)sqlite3_column_text(stmt, i), 63);
|
||||
new_tag = (const char*)sqlite3_column_text(stmt, i);
|
||||
new_controller->tag[0] = '\0';
|
||||
if(new_tag)
|
||||
{
|
||||
strncpy(new_controller->tag, (const char*)sqlite3_column_text(stmt, i), 63);
|
||||
}
|
||||
break;
|
||||
default: // ignore columns not implemented
|
||||
break;
|
||||
|
|
|
@ -34,6 +34,7 @@ static relay_dbo*
|
|||
relay_db_select_mapper(sqlite3_stmt *stmt)
|
||||
{
|
||||
auto *new_relay = new relay_dbo();
|
||||
const char* new_tag;
|
||||
for(int i = 0; i < sqlite3_column_count(stmt); i++)
|
||||
{
|
||||
const char *name = sqlite3_column_name(stmt, i);
|
||||
|
@ -60,8 +61,14 @@ relay_db_select_mapper(sqlite3_stmt *stmt)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 't': // tag
|
||||
strncpy(new_relay->tag, (const char*)sqlite3_column_text(stmt, i), 63);
|
||||
new_tag = (const char*)sqlite3_column_text(stmt, i);
|
||||
new_relay->tag[0] = '\0';
|
||||
if(new_tag)
|
||||
{
|
||||
strncpy(new_relay->tag, (const char*)sqlite3_column_text(stmt, i), 63);
|
||||
}
|
||||
break;
|
||||
default: // ignore columns not implemented
|
||||
break;
|
||||
|
@ -258,4 +265,4 @@ relay_dbo::free_list(relay_dbo **relays_list)
|
|||
delete relays_list[i];
|
||||
}
|
||||
free(relays_list);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue