X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Ftypes%2Finteger.c;h=189943e6052438bc4b6e3cb2895dcbfc54005562;hp=257341adfa41ce6320a68a00e04cf6bc4d43490f;hb=70fd5a515016525961d4bef0d627616abdc9bc28;hpb=0ace7505e59ef4fd014ba800e22767d0b58261e9 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; }