- the archivers expect mode to be a mode_t, so do not trip signed/unsigned conversion purposefully
diff --git a/include/libbb.h b/include/libbb.h
index cd192b9..57531e4 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -228,7 +228,7 @@
 extern char *skip_whitespace(const char *);
 extern char *skip_non_whitespace(const char *);
 
-extern const char *bb_mode_string(int mode);
+extern const char *bb_mode_string(mode_t mode);
 extern int is_directory(const char *name, int followLinks, struct stat *statBuf);
 extern int remove_file(const char *path, int flags);
 extern int copy_file(const char *source, const char *dest, int flags);
diff --git a/libbb/mode_string.c b/libbb/mode_string.c
index 01029bf..d3ff183 100644
--- a/libbb/mode_string.c
+++ b/libbb/mode_string.c
@@ -51,7 +51,7 @@
 /*                                  0123456789abcdef */
 static const char mode_chars[7] = "rwxSTst";
 
-const char *bb_mode_string(int mode)
+const char *bb_mode_string(mode_t mode)
 {
 	static char buf[12];
 	char *p = buf;
@@ -91,7 +91,7 @@
 /*                                  0123456789abcdef */
 static const char mode_chars[7] = "rwxSTst";
 
-const char *bb_mode_string(int mode)
+const char *bb_mode_string(mode_t mode)
 {
 	static char buf[12];
 	char *p = buf;