From: Henri Doreau Date: Thu, 19 Oct 2017 08:14:18 +0000 (+0200) Subject: LU-10141 llapi: integer overflow in llapi_changelog_start X-Git-Tag: 2.10.55~29 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=aaa808e7a40198581956a1d648f413cc30e830ed;hp=5277d9452ae990d53ca84a8cfb2150bda06772fb LU-10141 llapi: integer overflow in llapi_changelog_start Use the appropriate type to store and check the return value from lseek. This prevents from misinterpreting high offsets as errors. Change-Id: I15e92be3454af20ee6611c2a7ddfc1b597d639c2 Signed-off-by: Henri Doreau Reviewed-on: https://review.whamcloud.com/29674 Tested-by: Jenkins Reviewed-by: Thomas LEIBOVICI Tested-by: Maloo Reviewed-by: John L. Hammond Reviewed-by: Stephan Thiell Reviewed-by: Oleg Drokin --- diff --git a/lustre/utils/liblustreapi_chlg.c b/lustre/utils/liblustreapi_chlg.c index f4661be..d9c7af0 100644 --- a/lustre/utils/liblustreapi_chlg.c +++ b/lustre/utils/liblustreapi_chlg.c @@ -117,8 +117,10 @@ int llapi_changelog_start(void **priv, enum changelog_send_flag flags, } if (startrec != 0) { - rc = lseek(cp->clp_fd, startrec, SEEK_SET); - if (rc < 0) { + off_t res; + + res = lseek(cp->clp_fd, startrec, SEEK_SET); + if (res == (off_t)-1) { rc = -errno; goto out_close; }