use the new IVAL_TO_SMB_OFF_T for file_info size member
authorHerb Lewis <herb@samba.org>
Tue, 3 Dec 2002 20:02:18 +0000 (20:02 +0000)
committerHerb Lewis <herb@samba.org>
Tue, 3 Dec 2002 20:02:18 +0000 (20:02 +0000)
dir now shows correct size on large files

source/libsmb/clilist.c

index 3eacc25380aba4605378b308ac4641ac3059dead..1616d46bf15d194b8a7f463588885b8394f31758 100644 (file)
@@ -48,7 +48,7 @@ static int interpret_long_filename(struct cli_state *cli,
                        finfo->ctime = make_unix_date2(p+4);
                        finfo->atime = make_unix_date2(p+8);
                        finfo->mtime = make_unix_date2(p+12);
-                       finfo->size = IVAL(p,16);
+                       finfo->size = IVAL_TO_SMB_OFF_T(p,16);
                        finfo->mode = CVAL(p,24);
                        len = CVAL(p, 26);
                        p += 27;
@@ -69,7 +69,7 @@ static int interpret_long_filename(struct cli_state *cli,
                        finfo->ctime = make_unix_date2(p+4);
                        finfo->atime = make_unix_date2(p+8);
                        finfo->mtime = make_unix_date2(p+12);
-                       finfo->size = IVAL(p,16);
+                       finfo->size = IVAL_TO_SMB_OFF_T(p,16);
                        finfo->mode = CVAL(p,24);
                        len = CVAL(p, 30);
                        p += 31;
@@ -104,7 +104,7 @@ static int interpret_long_filename(struct cli_state *cli,
                        finfo->ctime = interpret_long_date(p); p += 8;
                        finfo->atime = interpret_long_date(p); p += 8;
                        finfo->mtime = interpret_long_date(p); p += 8; p += 8;
-                       finfo->size = IVAL(p,0); p += 8;
+                       finfo->size = IVAL_TO_SMB_OFF_T(p,0); p += 8;
                        p += 8; /* alloc size */
                        finfo->mode = CVAL(p,0); p += 4;
                        namelen = IVAL(p,0); p += 4;
@@ -322,7 +322,7 @@ static int interpret_short_filename(struct cli_state *cli, char *p,file_info *fi
        /* this date is converted to GMT by make_unix_date */
        finfo->ctime = make_unix_date(p+22);
        finfo->mtime = finfo->atime = finfo->ctime;
-       finfo->size = IVAL(p,26);
+       finfo->size = IVAL_TO_SMB_OFF_T(p,26);
        clistr_pull(cli, finfo->name, p+30, sizeof(finfo->name), 12, STR_ASCII);
        if (strcmp(finfo->name, "..") && strcmp(finfo->name, "."))
                fstrcpy(finfo->short_name,finfo->name);