diff --git a/winsup/utils/path.cc b/winsup/utils/path.cc index fcc5c0790..17ea3524d 100644 --- a/winsup/utils/path.cc +++ b/winsup/utils/path.cc @@ -181,7 +181,7 @@ out: /* Assumes is_symlink(fh) is true */ bool -readlink (HANDLE fh, char *path, int maxlen) +readlink (HANDLE fh, char *path, size_t maxlen) { DWORD rv; char *buf, *cp; @@ -225,7 +225,7 @@ readlink (HANDLE fh, char *path, int maxlen) return false; wcstombs (path, (wchar_t *) (cp + 2), wlen + 1); } - else if (len + 1 > maxlen) + else if ((size_t) (len + 1) > maxlen) return false; else memcpy (path, cp, len); @@ -243,7 +243,7 @@ readlink (HANDLE fh, char *path, int maxlen) return false; wcstombs (path, (wchar_t *) (cp + 2), wlen + 1); } - else if (fi.nFileSizeLow - strlen (SYMLINK_COOKIE) > (unsigned) maxlen) + else if (fi.nFileSizeLow - strlen (SYMLINK_COOKIE) > maxlen) return false; else strcpy (path, cp); @@ -778,7 +778,7 @@ rel_vconcat (const char *cwd, const char *s, va_list v) cwd = pathbuf; } - int max_len = 0; + size_t max_len = 0; mnt_t *m, *match = NULL; for (m = mount_table; m->posix; m++) diff --git a/winsup/utils/path.h b/winsup/utils/path.h index 53ef4d2f6..ee7c28a7a 100644 --- a/winsup/utils/path.h +++ b/winsup/utils/path.h @@ -17,7 +17,7 @@ char *cygpath (const char *s, ...); char *cygpath_rel (const char *cwd, const char *s, ...); bool is_exe (HANDLE); bool is_symlink (HANDLE); -bool readlink (HANDLE, char *, int); +bool readlink (HANDLE, char *, size_t); int get_word (HANDLE, int); int get_dword (HANDLE, int); bool from_fstab_line (mnt_t *m, char *line, bool user);