From: Fredrik H. <fre...@se...> - 2012-02-28 15:39:50
|
<font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2">Hello<br>I got an Segmentation Fault in OpenOCD 0.5.0 when running "enable_turbo" with str9xpec.<br>Maybe its better to check 'tap0' for NULL before doing dereference of pointer, to get a more instructive error message back to user.<br>Now I just got SegFault without knowing what was wrong.<br><br>diff --git a/src/flash/nor/str9xpec.c b/src/flash/nor/str9xpec.c<br>index e89ecf4..4e50d52 100644<br>--- a/src/flash/nor/str9xpec.c<br>+++ b/src/flash/nor/str9xpec.c<br>@@ -1050,9 +1050,13 @@ COMMAND_HANDLER(str9xpec_handle_flash_enable_turbo_command)<br> <br> str9xpec_info = bank->driver_priv;<br> <br>- tap0 = str9xpec_info->tap;<br>-<br> /* remove arm core from chain - enter turbo mode */<br>+ tap0 = str9xpec_info->tap;<br>+ if (tap0 == NULL) {<br>+ /* things are *WRONG* */<br>+ command_print(CMD_CTX, "**STR9FLASH** (tap0) invalid chain?");<br>+ return ERROR_OK;<br>+ }<br> tap1 = tap0->next_tap;<br> if (tap1 == NULL) {<br> /* things are *WRONG* */<br><br>Thanks,<br>Fredrik Hederstierna<br>Securitas Direct AB<br>Sweden<br><br></font> |