diff --git a/lib/getpass.c b/lib/getpass.c
index f5833cc3214d5fc570ee81c1d5e76b0ee1fa8c86..d9d19322ccb3e32a648f8a9dfa2ff99242a1263f 100644
--- a/lib/getpass.c
+++ b/lib/getpass.c
@@ -71,7 +71,7 @@
 #  define perror(x) fprintf(stderr, "Error in: %s\n", x)
 #endif
 
-char *getpass_r(const char *prompt, char *buffer, int buflen)
+char *getpass_r(const char *prompt, char *buffer, size_t buflen)
 {
   FILE *infp;
   FILE *outfp;
diff --git a/lib/getpass.h b/lib/getpass.h
index 6245f22957ff5a848d8d9e15e04bb47fd1b6c3d5..ab22bb810c8fc4f8f8c5a7155fdc871fa573078b 100644
--- a/lib/getpass.h
+++ b/lib/getpass.h
@@ -3,6 +3,6 @@
 /*
  * Returning NULL will abort the continued operation!
  */
-char* getpass_r(char *prompt, char* buffer, int buflen );
+char* getpass_r(char *prompt, char* buffer, size_t buflen );
 
 #endif