- 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;