Hi,

On 10/06/13 00:45, morphiend wrote:
+ *             _chsize_s (MSVCRT.@)
+ */
+int CDECL MSVCRT__chsize_s(int fd, __int64 size)
+{
+    LARGE_INTEGER cur, pos;
+    LARGE_INTEGER temp = { 0 };
This causes compilation warnings. There's also a trailing space in this line.

+    TRACE("(fd=%d, size=%lld)\n", fd, size);
You can't print 64-bit numbers this way, it's not portable. You can use wine_dbgstr_longlong function.

+    handle = msvcrt_fdtoh(fd);
+    if (!MSVCRT_CHECK_PMT_ERR(handle == INVALID_HANDLE_VALUE, MSVCRT_EBADF) ||
+        !MSVCRT_CHECK_PMT_ERR(size < 0, MSVCRT_EINVAL))
You're validating parameters incorrectly. Did you test this patch?

+            {
+                ret = SetEndOfFile(handle);
+                if (!ret)
+                {
+                    msvcrt_set_errno(GetLastError());
+                    ret = *MSVCRT__errno();
+                }
This causes the _chsize_s function to return TRUE in case of success.

+               /* restore the file pointer */
+               MSVCRT__lseek(fd, cur.QuadPart, SEEK_SET);
MSVCRT__lseek takes LONG as second argument.

Cheers,
Piotr


Reply via email to