X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Ftypes%2Finteger.c;fp=formats%2Fctf%2Ftypes%2Finteger.c;h=189943e6052438bc4b6e3cb2895dcbfc54005562;hp=257341adfa41ce6320a68a00e04cf6bc4d43490f;hb=024e61817685a20caceb4e3ef3bdc019a7af6b6e;hpb=13ec125abb88a60fc5e11ff904b525e1f00a331b diff --git a/formats/ctf/types/integer.c b/formats/ctf/types/integer.c index 257341ad..189943e6 100644 --- a/formats/ctf/types/integer.c +++ b/formats/ctf/types/integer.c @@ -49,7 +49,8 @@ int _aligned_integer_read(struct bt_stream_pos *ppos, struct ctf_stream_pos *pos = ctf_pos(ppos); int rbo = (integer_declaration->byte_order != BYTE_ORDER); /* reverse byte order */ - ctf_align_pos(pos, integer_declaration->p.alignment); + if (!ctf_align_pos(pos, integer_declaration->p.alignment)) + return -EFAULT; if (!ctf_pos_access_ok(pos, integer_declaration->len)) return -EFAULT; @@ -136,7 +137,8 @@ int _aligned_integer_read(struct bt_stream_pos *ppos, assert(0); } } - ctf_move_pos(pos, integer_declaration->len); + if (!ctf_move_pos(pos, integer_declaration->len)) + return -EFAULT; return 0; } @@ -151,7 +153,8 @@ int _aligned_integer_write(struct bt_stream_pos *ppos, struct ctf_stream_pos *pos = ctf_pos(ppos); int rbo = (integer_declaration->byte_order != BYTE_ORDER); /* reverse byte order */ - ctf_align_pos(pos, integer_declaration->p.alignment); + if (!ctf_align_pos(pos, integer_declaration->p.alignment)) + return -EFAULT; if (!ctf_pos_access_ok(pos, integer_declaration->len)) return -EFAULT; @@ -207,7 +210,8 @@ int _aligned_integer_write(struct bt_stream_pos *ppos, } } end: - ctf_move_pos(pos, integer_declaration->len); + if (!ctf_move_pos(pos, integer_declaration->len)) + return -EFAULT; return 0; } @@ -224,7 +228,8 @@ int ctf_integer_read(struct bt_stream_pos *ppos, struct bt_definition *definitio return _aligned_integer_read(ppos, definition); } - ctf_align_pos(pos, integer_declaration->p.alignment); + if (!ctf_align_pos(pos, integer_declaration->p.alignment)) + return -EFAULT; if (!ctf_pos_access_ok(pos, integer_declaration->len)) return -EFAULT; @@ -252,7 +257,8 @@ int ctf_integer_read(struct bt_stream_pos *ppos, struct bt_definition *definitio pos->offset, integer_declaration->len, &integer_definition->value._signed); } - ctf_move_pos(pos, integer_declaration->len); + if (!ctf_move_pos(pos, integer_declaration->len)) + return -EFAULT; return 0; } @@ -269,7 +275,8 @@ int ctf_integer_write(struct bt_stream_pos *ppos, struct bt_definition *definiti return _aligned_integer_write(ppos, definition); } - ctf_align_pos(pos, integer_declaration->p.alignment); + if (!ctf_align_pos(pos, integer_declaration->p.alignment)) + return -EFAULT; if (!ctf_pos_access_ok(pos, integer_declaration->len)) return -EFAULT; @@ -300,6 +307,7 @@ int ctf_integer_write(struct bt_stream_pos *ppos, struct bt_definition *definiti integer_definition->value._signed); } end: - ctf_move_pos(pos, integer_declaration->len); + if (!ctf_move_pos(pos, integer_declaration->len)) + return -EFAULT; return 0; }