Bug #52062 Compiler warning in os0file.c on windows 64-bit
Submitted: 15 Mar 2010 11:02 Modified: 1 Dec 2010 0:51
Reporter: Jonas Oreland Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.1.44 OS:Any
Assigned to: Calvin Sun CPU Architecture:Any

[15 Mar 2010 11:02] Jonas Oreland
Description:
os/os0file.c: 3779
	C4244: 'function' : conversion from 'ulint' to 'DWORD', possible loss of data
os/os0file.c: 3785
	C4244: 'function' : conversion from 'ulint' to 'DWORD', possible loss of data

How to repeat:
compile innodb (not plugin) on windows 7, 64-bit

Suggested fix:
=== modified file 'storage/innobase/os/os0file.c'
--- storage/innobase/os/os0file.c       2009-11-30 08:40:31 +0000
+++ storage/innobase/os/os0file.c       2010-03-15 11:00:56 +0000
@@ -3776,13 +3776,13 @@ os_aio_windows_handle(
                switch (slot->type) {
                case OS_FILE_WRITE:
                        ret = WriteFile(slot->file, slot->buf,
-                                       slot->len, &len,
+                                       (DWORD)slot->len, &len,
                                        &(slot->control));
 
                        break;
                case OS_FILE_READ:
                        ret = ReadFile(slot->file, slot->buf,
-                                      slot->len, &len,
+                                      (DWORD)slot->len, &len,
                                       &(slot->control));
 
                        break;
[15 Mar 2010 11:05] Vasil Dimov
Calvin,

Is there an analogous write function that takes a 64 bit length argument?

If yes, then we should use that one, if not, then we should add an assert in addition to the typecast.

Thanks!
[15 Mar 2010 11:11] MySQL Verification Team
Thank you for the bug report.

1>os0file.c
1>.\os\os0file.c(3787) : warning C4244: 'function' : conversion from 'ulint' to 'DWORD', possible loss of data
1>.\os\os0file.c(3793) : warning C4244: 'function' : conversion from 'ulint' to 'DWORD', possible loss of data
1>Build log was saved at "file://c:\build\5.1-20100203\storage\innobase\innobase.dir\Release\BuildLog.htm"
1>innobase - 0 error(s), 2 warning(s)
[17 Jun 2010 8:37] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/111370

3109 Martin Skold	2010-06-17
      Bug#52062  Compiler warning in os0file.c on windows 64-bit
      modified:
        storage/innobase/os/os0file.c
[17 Jun 2010 9:21] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/111377

3219 Martin Skold	2010-06-17 [merge]
      Merge
      modified:
        storage/innobase/os/os0file.c
        storage/myisam/mi_dynrec.c
[17 Jun 2010 9:27] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/111378

3615 Martin Skold	2010-06-17 [merge]
      Merge
      modified:
        storage/innobase/os/os0file.c
        storage/myisam/mi_dynrec.c
[17 Jun 2010 12:02] Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:martin.skold@mysql.com-20100617092419-xx30avkv90m9zbw4) (merge vers: 5.1.47-ndb-7.0.16) (pib:16)
[17 Jun 2010 12:44] Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:martin.skold@mysql.com-20100617083528-ubwqijrhy1fo9wep) (merge vers: 5.1.47-ndb-6.2.19) (pib:16)
[17 Jun 2010 13:29] Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:martin.skold@mysql.com-20100617091837-h2ky4qp1ka3rigdn) (merge vers: 5.1.47-ndb-6.3.35) (pib:16)
[13 Nov 2010 16:16] Bugs System
Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (merge vers: 5.6.99-m5) (pib:21)
[13 Nov 2010 16:28] Bugs System
Pushed into mysql-next-mr (revid:alexander.nozdrin@oracle.com-20101113160336-atmtmfb3mzm4pz4i) (version source revid:alexander.nozdrin@oracle.com-20101113152540-gxro4g0v29l27f5x) (pib:21)
[18 Nov 2010 15:54] Bugs System
Pushed into mysql-5.1 5.1.54 (revid:build@mysql.com-20101118153531-693taxtxyxpt037i) (version source revid:build@mysql.com-20101118153531-693taxtxyxpt037i) (merge vers: 5.1.54) (pib:21)
[16 Dec 2010 22:25] Bugs System
Pushed into mysql-5.5 5.5.9 (revid:jonathan.perkin@oracle.com-20101216101358-fyzr1epq95a3yett) (version source revid:jonathan.perkin@oracle.com-20101216101358-fyzr1epq95a3yett) (merge vers: 5.5.9) (pib:24)