| 
									
										
										
										
											2022-01-12 12:23:47 +05:30
										 |  |  | /*
 | 
					
						
							|  |  |  |  * SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: Apache-2.0 | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2021-01-26 11:31:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "sdkconfig.h"
 | 
					
						
							|  |  |  | #include "esp_system.h"
 | 
					
						
							| 
									
										
										
										
											2022-01-12 12:23:47 +05:30
										 |  |  | #include "esp_random.h"
 | 
					
						
							| 
									
										
										
										
											2021-01-26 11:31:41 +08:00
										 |  |  | #include "esp_rom_sys.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if CONFIG_COMPILER_STACK_CHECK
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "esp_log.h"
 | 
					
						
							|  |  |  | const static char *TAG = "stack_chk"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void *__stack_chk_guard = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void __attribute__ ((constructor)) | 
					
						
							|  |  |  | __esp_stack_guard_setup (void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ESP_LOGD(TAG, "Intialize random stack guard"); | 
					
						
							|  |  |  |     __stack_chk_guard = (void *)esp_random(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-06 09:23:52 +01:00
										 |  |  | IRAM_ATTR void __stack_chk_fail (void) | 
					
						
							| 
									
										
										
										
											2021-01-26 11:31:41 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2022-12-06 09:23:52 +01:00
										 |  |  |     esp_system_abort(DRAM_STR("Stack smashing protect failure!")); | 
					
						
							| 
									
										
										
										
											2021-01-26 11:31:41 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |