Unverified Commit b547fff5 authored by Marcel Raad's avatar Marcel Raad
Browse files

tool_operate: fix MinGW compiler warning

MinGW complains:
tool_operate.c:197:15: error: comparison is always true due to limited range
of data type [-Werror=type-limits]

Fix this by only doing the comparison if 'long' is large enough to hold the
constant it is compared with.

Closes https://github.com/curl/curl/pull/1378
parent 446eaa94
Loading
Loading
Loading
Loading
+27 −23
Original line number Diff line number Diff line
@@ -194,10 +194,20 @@ static void setfiletime(long filetime, const char *filename,
   saving time offset and since it's GMT that is bad behavior. When we have
   access to a 64-bit type we can bypass utime and set the times directly. */
#if defined(WIN32) && (CURL_SIZEOF_CURL_OFF_T >= 8)
    HANDLE hfile;

#if (CURL_SIZEOF_LONG >= 8)
    /* 910670515199 is the maximum unix filetime that can be used as a
       Windows FILETIME without overflow: 30827-12-31T23:59:59. */
    if(filetime <= CURL_OFF_T_C(910670515199)) {
      HANDLE hfile = CreateFileA(filename, FILE_WRITE_ATTRIBUTES,
    if(filetime > CURL_OFF_T_C(910670515199)) {
      fprintf(error_stream,
              "Failed to set filetime %ld on outfile: overflow\n",
              filetime);
      return;
    }
#endif /* CURL_SIZEOF_LONG >= 8 */

    hfile = CreateFileA(filename, FILE_WRITE_ATTRIBUTES,
                        (FILE_SHARE_READ | FILE_SHARE_WRITE |
                         FILE_SHARE_DELETE),
                        NULL, OPEN_EXISTING, 0, NULL);
@@ -221,12 +231,6 @@ static void setfiletime(long filetime, const char *filename,
              "CreateFile failed: GetLastError %u\n",
              filetime, GetLastError());
    }
    }
    else {
      fprintf(error_stream,
              "Failed to set filetime %ld on outfile: overflow\n",
              filetime);
    }
#elif defined(HAVE_UTIME)
    struct utimbuf times;
    times.actime = (time_t)filetime;