Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requesting value of handle that isn't in cache over UART enters hardfault handler #170

Open
thedjnK opened this issue Mar 9, 2017 · 0 comments
Labels

Comments

@thedjnK
Copy link

thedjnK commented Mar 9, 2017

If you request the value of a handle that isn't on the node using the UART interface then the node will stop responding entirely because it enters the hardfault handler. This looks to be because you are passing in a maximum allowable size to the rbc_mesh_value_get() function in mesh_aci.c and expecting it to be reduced when the value is returned, however as the value isn't in the cache this length value will not be changed. Setting the length to e.g. 2 when there is an error prevents the crash. I haven't looked further to see if it's a memcpy or something else that is causing the hardfault due to an invalid pointer.

A additional nice idea would be to link the maximum serial string length with the maximum size of mesh values, by default it's fixed at 36 bytes in serial_handler.h therefore if you increase the mesh payload size you'd then need to search through the serial header files to find and change that maximum length too.

trond-snekvik added a commit that referenced this issue Mar 31, 2017
trond-snekvik added a commit that referenced this issue Oct 12, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants