{"sha":"00155471eafd05160ba8ce352deaa8e51d65e05f","node_id":"C_kwDOES-Pt9oAKDAwMTU1NDcxZWFmZDA1MTYwYmE4Y2UzNTJkZWFhOGU1MWQ2NWUwNWY","commit":{"author":{"name":"Aniruddha Kanhere","email":"kanherea@amazon.com","date":"2026-04-13T17:47:20Z"},"committer":{"name":"Aniruddha Kanhere","email":"kanherea@amazon.com","date":"2026-04-29T00:20:53Z"},"message":"Fix DHCPv6 sub-option default case skip\n\nIn prvDHCPv6_subOption(), the default case for unknown sub-option types\nskipped uxLength2 - uxUsed bytes. Since uxUsed is cumulative bytes from\nthe parent option start and uxLength2 is the current sub-option payload\nlength, this subtraction wraps when uxUsed > uxLength2, corrupting the\nparser index. Fix by skipping uxLength2 bytes. Also add xHasError check\nto the loop exit condition.","tree":{"sha":"767dc2d34aed2ac769d4065c59a37b2bde2c33d0","url":"https://api.github.com/repos/FreeRTOS/FreeRTOS-Plus-TCP/git/trees/767dc2d34aed2ac769d4065c59a37b2bde2c33d0"},"url":"https://api.github.com/repos/FreeRTOS/FreeRTOS-Plus-TCP/git/commits/00155471eafd05160ba8ce352deaa8e51d65e05f","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/FreeRTOS/FreeRTOS-Plus-TCP/commits/00155471eafd05160ba8ce352deaa8e51d65e05f","html_url":"https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/commit/00155471eafd05160ba8ce352deaa8e51d65e05f","comments_url":"https://api.github.com/repos/FreeRTOS/FreeRTOS-Plus-TCP/commits/00155471eafd05160ba8ce352deaa8e51d65e05f/comments","author":{"login":"AniruddhaKanhere","id":60444055,"node_id":"MDQ6VXNlcjYwNDQ0MDU1","avatar_url":"https://avatars.githubusercontent.com/u/60444055?v=4","gravatar_id":"","url":"https://api.github.com/users/AniruddhaKanhere","html_url":"https://github.com/AniruddhaKanhere","followers_url":"https://api.github.com/users/AniruddhaKanhere/followers","following_url":"https://api.github.com/users/AniruddhaKanhere/following{/other_user}","gists_url":"https://api.github.com/users/AniruddhaKanhere/gists{/gist_id}","starred_url":"https://api.github.com/users/AniruddhaKanhere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AniruddhaKanhere/subscriptions","organizations_url":"https://api.github.com/users/AniruddhaKanhere/orgs","repos_url":"https://api.github.com/users/AniruddhaKanhere/repos","events_url":"https://api.github.com/users/AniruddhaKanhere/events{/privacy}","received_events_url":"https://api.github.com/users/AniruddhaKanhere/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"AniruddhaKanhere","id":60444055,"node_id":"MDQ6VXNlcjYwNDQ0MDU1","avatar_url":"https://avatars.githubusercontent.com/u/60444055?v=4","gravatar_id":"","url":"https://api.github.com/users/AniruddhaKanhere","html_url":"https://github.com/AniruddhaKanhere","followers_url":"https://api.github.com/users/AniruddhaKanhere/followers","following_url":"https://api.github.com/users/AniruddhaKanhere/following{/other_user}","gists_url":"https://api.github.com/users/AniruddhaKanhere/gists{/gist_id}","starred_url":"https://api.github.com/users/AniruddhaKanhere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AniruddhaKanhere/subscriptions","organizations_url":"https://api.github.com/users/AniruddhaKanhere/orgs","repos_url":"https://api.github.com/users/AniruddhaKanhere/repos","events_url":"https://api.github.com/users/AniruddhaKanhere/events{/privacy}","received_events_url":"https://api.github.com/users/AniruddhaKanhere/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"e4015a62b7f77a8bac16b48d7b72a32b2b0d698b","url":"https://api.github.com/repos/FreeRTOS/FreeRTOS-Plus-TCP/commits/e4015a62b7f77a8bac16b48d7b72a32b2b0d698b","html_url":"https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/commit/e4015a62b7f77a8bac16b48d7b72a32b2b0d698b"}],"stats":{"total":5,"additions":3,"deletions":2},"files":[{"sha":"5a2aa8cbf015ce7ddb19eb477da244e33532a113","filename":"source/FreeRTOS_DHCPv6.c","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/00155471eafd05160ba8ce352deaa8e51d65e05f/source%2FFreeRTOS_DHCPv6.c","raw_url":"https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/raw/00155471eafd05160ba8ce352deaa8e51d65e05f/source%2FFreeRTOS_DHCPv6.c","contents_url":"https://api.github.com/repos/FreeRTOS/FreeRTOS-Plus-TCP/contents/source%2FFreeRTOS_DHCPv6.c?ref=00155471eafd05160ba8ce352deaa8e51d65e05f","patch":"@@ -1196,13 +1196,14 @@ static BaseType_t prvDHCPv6_subOption( uint16_t usOption,\n                 break;\n \n             default:\n-                ( void ) xBitConfig_read_uc( pxMessage, NULL, uxLength2 - uxUsed );\n+                ( void ) xBitConfig_read_uc( pxMessage, NULL, uxLength2 );\n                 FreeRTOS_printf( ( \"prvDHCPv6Analyse: skipped unknown option %u\\n\", usOption2 ) );\n                 break;\n         }\n \n-        if( xReturn != pdTRUE )\n+        if( ( xReturn != pdTRUE ) || ( pxMessage->xHasError != pdFALSE ) )\n         {\n+            xReturn = pdFALSE;\n             FreeRTOS_printf( ( \"prvDHCPv6_subOption: One of sub-options %d returns error\\n\", usOption2 ) );\n             break;\n         }"}]}