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:
Alex Tereschenko
2017-06-15 21:20:51 +02:00
committed by Brendan Le Foll
parent 30bbb88685
commit d544e3c2f6
2 changed files with 3 additions and 2 deletions

View File

@@ -41,7 +41,7 @@ The number of json objects in layout should be equal to the pin_count.
|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 |
### GPIO

View File

@@ -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);
// 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 {
syslog(LOG_ERR, "init_json_platform: No IO Label");
return MRAA_ERROR_INVALID_RESOURCE;