jsonplatform.c: fix potential segfault at pin label processing
Also update docs to reflect the max label length. Fixes #738. Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com> Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
committed by
Brendan Le Foll
parent
30bbb88685
commit
d544e3c2f6
@@ -41,7 +41,7 @@ The number of json objects in layout should be equal to the pin_count.
|
|||||||
|
|
||||||
|Key |Type |Required |Description |
|
|Key |Type |Required |Description |
|
||||||
|-----------|-------|-----------|-----------------------------------------------|
|
|-----------|-------|-----------|-----------------------------------------------|
|
||||||
|label |string |yes | The label used to describe the pin |
|
|label |string |yes | The label used to describe the pin (11 characters max) |
|
||||||
|invalid |boolean|no | Sets the labeled pin as an invalid pin |
|
|invalid |boolean|no | Sets the labeled pin as an invalid pin |
|
||||||
|
|
||||||
### GPIO
|
### GPIO
|
||||||
|
|||||||
@@ -214,7 +214,8 @@ mraa_init_json_platform_io(json_object* jobj_io, mraa_board_t* board, int index)
|
|||||||
}
|
}
|
||||||
temp_string = json_object_get_string(jobj_temp);
|
temp_string = json_object_get_string(jobj_temp);
|
||||||
// set the gpio label
|
// set the gpio label
|
||||||
strncpy(board->pins[pos].name, temp_string, 8);
|
memset(board->pins[pos].name, 0, MRAA_PIN_NAME_SIZE);
|
||||||
|
strncpy(board->pins[pos].name, temp_string, MRAA_PIN_NAME_SIZE - 1);
|
||||||
} else {
|
} else {
|
||||||
syslog(LOG_ERR, "init_json_platform: No IO Label");
|
syslog(LOG_ERR, "init_json_platform: No IO Label");
|
||||||
return MRAA_ERROR_INVALID_RESOURCE;
|
return MRAA_ERROR_INVALID_RESOURCE;
|
||||||
|
|||||||
Reference in New Issue
Block a user