← Commit list

33745b1fc

Denys Vlasenko
Denys Vlasenko
2021-02-18
SUCCESS Duration: 153s

Subject

ash: placate -Werror=format-security

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

include/platform.h+8 -0
@@ -407,6 +407,7 @@ typedef unsigned smalluint;
#define HAVE_SETBIT 1
#define HAVE_SIGHANDLER_T 1
#define HAVE_STPCPY 1
+#define HAVE_STPNCPY 1
#define HAVE_MEMPCPY 1
#define HAVE_STRCASESTR 1
#define HAVE_STRCHRNUL 1
@@ -442,6 +443,7 @@ typedef unsigned smalluint;
# undef HAVE_MKDTEMP
# undef HAVE_SETBIT
# undef HAVE_STPCPY
+# undef HAVE_STPNCPY
# undef HAVE_STRCASESTR
# undef HAVE_STRCHRNUL
# undef HAVE_STRSEP
@@ -514,6 +516,7 @@ typedef unsigned smalluint;
#if defined(__digital__) && defined(__unix__)
# undef HAVE_STPCPY
+# undef HAVE_STPNCPY
#endif
#if defined(ANDROID) || defined(__ANDROID__)
@@ -530,6 +533,7 @@ typedef unsigned smalluint;
# undef HAVE_TTYNAME_R
# undef HAVE_GETLINE
# undef HAVE_STPCPY
+# undef HAVE_STPNCPY
# endif
# undef HAVE_MEMPCPY
# undef HAVE_STRCHRNUL
@@ -574,6 +578,10 @@ typedef void (*sighandler_t)(int);
extern char *stpcpy(char *p, const char *to_add) FAST_FUNC;
#endif
+#ifndef HAVE_STPNCPY
+extern char *stpncpy(char *p, const char *to_add, size_t n) FAST_FUNC;
+#endif
+
#ifndef HAVE_MEMPCPY
#include <string.h>
/* In case we are wrong about !HAVE_MEMPCPY, and toolchain _does_ have
libbb/platform.c+12 -0
@@ -166,6 +166,18 @@ char* FAST_FUNC stpcpy(char *p, const char *to_add)
}
#endif
+#ifndef HAVE_STPNCPY
+char* FAST_FUNC stpncpy(char *p, const char *to_add, size_t n)
+{
+ while (n != 0 && (*p = *to_add) != '\0') {
+ p++;
+ to_add++;
+ n--;
+ }
+ return p;
+}
+#endif
+
#ifndef HAVE_GETLINE
ssize_t FAST_FUNC getline(char **lineptr, size_t *n, FILE *stream)
{
shell/ash.c+1 -3
@@ -4263,9 +4263,7 @@ sprint_status48(char *os, int status, int sigonly)
#endif
}
st &= 0x7f;
-//TODO: use bbox's get_signame? strsignal adds ~600 bytes to text+rodata
- //s = stpncpy(s, strsignal(st), 32); //not all libc have stpncpy()
- s += fmtstr(s, 32, strsignal(st));
+ s = stpncpy(s, strsignal(st), 32);
if (WCOREDUMP(status)) {
s = stpcpy(s, " (core dumped)");
}