Branch data Line data Source code
1 : : #include "mem.h"
2 : :
3 : 20484 : Return memory_guarded_size(
4 : : size_t left,
5 : : size_t right,
6 : : size_t *product)
7 : : {
8 : : /* Status returned by this function through provide()
9 : : Default value assumes successful completion */
10 : 20484 : Return status = SUCCESS;
11 : :
12 [ + - - + ]: 20484 : if(left != 0 && right > SIZE_MAX / left)
13 : : {
14 : 0 : status = FAILURE;
15 : 0 : telemetry_overflow_guard_failure();
16 : : }
17 : :
18 [ + - ]: 20484 : if(TRIUMPH & status)
19 : : {
20 : 20484 : *product = left * right;
21 : : }
22 : :
23 : 20484 : provide(status);
24 : : }
|