summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/firmware/efi/libstub/vsprintf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/firmware/efi/libstub/vsprintf.c b/drivers/firmware/efi/libstub/vsprintf.c
index 27685c726c64..d427a7b1ef64 100644
--- a/drivers/firmware/efi/libstub/vsprintf.c
+++ b/drivers/firmware/efi/libstub/vsprintf.c
@@ -14,6 +14,7 @@
#include <linux/compiler.h>
#include <linux/ctype.h>
+#include <linux/limits.h>
#include <linux/string.h>
static int skip_atoi(const char **s)
@@ -356,7 +357,11 @@ int vsprintf(char *buf, const char *fmt, va_list ap)
continue;
case 's':
+ if (precision < 0)
+ precision = INT_MAX;
s = va_arg(args, char *);
+ if (!s)
+ s = precision < 6 ? "" : "(null)";
len = strnlen(s, precision);
if (!(flags & LEFT))