Showing the changes to src/vm/thread.cpp (1 of 24 files). Show all
Unified · Split
| @@ -239,19 +239,25 @@ vm_thread_state_t vm_thread_t::execute(vm_t &vm, const uint32_t quanta) · 238 unmodified lines | ||
| 239 | 239 | catch (const unhandled_user_exception &uue) |
| 240 | 240 | { |
| 241 | 241 | _error_message = calloc_memory<char>(max_error_message); |
| 242 | − std::snprintf(_error_message, max_error_message, "%s - '%s' in %s at instruction %d", uue.what(), uue.exception_id, uue.module_name, uue.program_counter); | |
| 242 | + const int ec = std::snprintf(_error_message, max_error_message, "%s - '%s' in %s at instruction %d", uue.what(), uue.exception_id, uue.module_name, uue.program_counter); | |
| 243 | + assert(ec > 0 && ec < max_error_message); | |
| 244 | + (void)ec; | |
| 243 | 245 | _registers.current_thread_state = vm_thread_state_t::broken; |
| 244 | 246 | } |
| 245 | 247 | catch (const index_out_of_range_memory &ioor) |
| 246 | 248 | { |
| 247 | 249 | _error_message = calloc_memory<char>(max_error_message); |
| 248 | − std::snprintf(_error_message, max_error_message, "%s - %d [%d,%d]", ioor.what(), ioor.invalid_value, ioor.valid_min, ioor.valid_max); | |
| 250 | + const int ec = std::snprintf(_error_message, max_error_message, "%s - %d [%d,%d]", ioor.what(), ioor.invalid_value, ioor.valid_min, ioor.valid_max); | |
| 251 | + assert(ec > 0 && ec < max_error_message); | |
| 252 | + (void)ec; | |
| 249 | 253 | _registers.current_thread_state = vm_thread_state_t::broken; |
| 250 | 254 | } |
| 251 | 255 | catch (const vm_user_exception &ue) |
| 252 | 256 | { |
| 253 | 257 | _error_message = calloc_memory<char>(max_error_message); |
| 254 | − std::snprintf(_error_message, max_error_message, "%s", ue.what()); | |
| 258 | + const int ec = std::snprintf(_error_message, max_error_message, "%s", ue.what()); | |
| 259 | + assert(ec > 0 && ec < max_error_message); | |
| 260 | + (void)ec; | |
| 255 | 261 | _registers.current_thread_state = vm_thread_state_t::broken; |
| 256 | 262 | } |
| 257 | 263 | |