locking: use correct conversion specifier for printing variables
authorRalph Boehme <rb@sernet.de>
Sun, 1 Jun 2014 13:16:16 +0000 (15:16 +0200)
committerMichael Adam <obnox@samba.org>
Fri, 13 Jun 2014 11:22:18 +0000 (13:22 +0200)
Fix several occurences of using printf conversion to fload when
printing offset and count variables in locking debug messages and
smbstatus.

Conversion to float may lead to wrong results with very large values.

Signed-off-by: Ralph Boehme <rb@sernet.de>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
source3/locking/locking.c
source3/locking/posix.c
source3/utils/status.c

index 4ef6b8936a47d976fb43162f697dc99a5bdb5278..b3f65ee6a49fe509412130b279a55b09594e0018 100644 (file)
@@ -266,10 +266,10 @@ struct byte_range_lock *do_lock(struct messaging_context *msg_ctx,
 
        /* NOTE! 0 byte long ranges ARE allowed and should be stored  */
 
-       DEBUG(10,("do_lock: lock flavour %s lock type %s start=%.0f len=%.0f "
+       DEBUG(10,("do_lock: lock flavour %s lock type %s start=%ju len=%ju "
                "blocking_lock=%s requested for %s file %s\n",
                lock_flav_name(lock_flav), lock_type_name(lock_type),
-               (double)offset, (double)count, blocking_lock ? "true" :
+               (uintmax_t)offset, (uintmax_t)count, blocking_lock ? "true" :
                "false", fsp_fnum_dbg(fsp), fsp_str_dbg(fsp)));
 
        br_lck = brl_get_locks(talloc_tos(), fsp);
index 2d89110b7d343e374c4bbecb9d1b3f267d4f74a5..908cd57d5d810d4191df955f1d45f397d05c11e4 100644 (file)
@@ -186,7 +186,8 @@ static bool posix_fcntl_lock(files_struct *fsp, int op, off_t offset, off_t coun
 {
        bool ret;
 
-       DEBUG(8,("posix_fcntl_lock %d %d %.0f %.0f %d\n",fsp->fh->fd,op,(double)offset,(double)count,type));
+       DEBUG(8,("posix_fcntl_lock %d %d %jd %jd %d\n",
+                fsp->fh->fd,op,(intmax_t)offset,(intmax_t)count,type));
 
        ret = SMB_VFS_LOCK(fsp, op, offset, count, type);
 
@@ -1165,9 +1166,9 @@ bool set_posix_lock_posix_flavour(files_struct *fsp,
        off_t count;
        int posix_lock_type = map_posix_lock_type(fsp,lock_type);
 
-       DEBUG(5,("set_posix_lock_posix_flavour: File %s, offset = %.0f, count "
-                "= %.0f, type = %s\n", fsp_str_dbg(fsp),
-                (double)u_offset, (double)u_count,
+       DEBUG(5,("set_posix_lock_posix_flavour: File %s, offset = %ju, count "
+                "= %ju, type = %s\n", fsp_str_dbg(fsp),
+                (uintmax_t)u_offset, (uintmax_t)u_count,
                 posix_lock_type_name(lock_type)));
 
        /*
@@ -1181,8 +1182,8 @@ bool set_posix_lock_posix_flavour(files_struct *fsp,
 
        if (!posix_fcntl_lock(fsp,F_SETLK,offset,count,posix_lock_type)) {
                *errno_ret = errno;
-               DEBUG(5,("set_posix_lock_posix_flavour: Lock fail !: Type = %s: offset = %.0f, count = %.0f. Errno = %s\n",
-                       posix_lock_type_name(posix_lock_type), (double)offset, (double)count, strerror(errno) ));
+               DEBUG(5,("set_posix_lock_posix_flavour: Lock fail !: Type = %s: offset = %ju, count = %ju. Errno = %s\n",
+                       posix_lock_type_name(posix_lock_type), (intmax_t)offset, (intmax_t)count, strerror(errno) ));
                return False;
        }
        return True;
index 61a450e977ba2d4b5b2b8124fbf73aa449cb2fd3..7bbcea5637c4e7666e00ab0a098682086126fe15 100644 (file)
@@ -240,10 +240,10 @@ static void print_brl(struct file_id id,
                }
        }
 
-       d_printf("%-10s %-15s %-4s %-9.0f %-9.0f %-24s %-24s\n", 
+       d_printf("%-10s %-15s %-4s %-9jd %-9jd %-24s %-24s\n",
                 procid_str_static(&pid), file_id_string_tos(&id),
                 desc,
-                (double)start, (double)size,
+                (intmax_t)start, (intmax_t)size,
                 sharepath, fname);
 
        TALLOC_FREE(fname);