Whamcloud - gitweb
LU-10141 llapi: integer overflow in llapi_changelog_start 35/29735/2
authorHenri Doreau <henri.doreau@cea.fr>
Thu, 19 Oct 2017 08:14:18 +0000 (10:14 +0200)
committerJohn L. Hammond <john.hammond@intel.com>
Wed, 15 Nov 2017 17:42:06 +0000 (17:42 +0000)
Use the appropriate type to store and check the return value from lseek.
This prevents from misinterpreting high offsets as errors.

Lustre-change: https://review.whamcloud.com/29674
Lustre-commit: aaa808e7a40198581956a1d648f413cc30e830ed

Change-Id: I15e92be3454af20ee6611c2a7ddfc1b597d639c2
Signed-off-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-by: Thomas LEIBOVICI <thomas.leibovici@cea.fr>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Stephan Thiell <sthiell@stanford.edu>
Signed-off-by: Minh Diep <minh.diep@intel.com>
Reviewed-on: https://review.whamcloud.com/29735
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
lustre/utils/liblustreapi_chlg.c

index f4661be..d9c7af0 100644 (file)
@@ -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;
                }