Whamcloud - gitweb
LU-10141 llapi: integer overflow in llapi_changelog_start 74/29674/2
authorHenri Doreau <henri.doreau@cea.fr>
Thu, 19 Oct 2017 08:14:18 +0000 (10:14 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 24 Oct 2017 07:18:53 +0000 (07:18 +0000)
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 <henri.doreau@cea.fr>
Reviewed-on: https://review.whamcloud.com/29674
Tested-by: Jenkins
Reviewed-by: Thomas LEIBOVICI <thomas.leibovici@cea.fr>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Stephan Thiell <sthiell@stanford.edu>
Reviewed-by: Oleg Drokin <oleg.drokin@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) {
        }
 
        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;
                }
                        rc = -errno;
                        goto out_close;
                }