⬢ DragonFlyBSD Kernel Audit
DF-5779 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/include/linux/seq_file.h b/sys/dev/drm/include/linux/seq_file.h
index 3468f37..1111111 100644
--- a/sys/dev/drm/include/linux/seq_file.h
+++ b/sys/dev/drm/include/linux/seq_file.h
@@ -41,7 +41,11 @@ struct seq_file {
 
 void seq_printf(struct seq_file *m, const char *f, ...);
 
-#define seq_puts(m, str)	ksnprintf((m)->buf, (m)->size, str)
+/*
+ * str is DATA by the Linux seq_puts() contract and must never be
+ * interpreted as a format string (kernel printf supports %n, a live
+ * write-through-pointer conversion).
+ */
+static inline void
+seq_puts(struct seq_file *m, const char *str)
+{
+	ksnprintf((m)->buf, (m)->size, "%s", str);
+}
 
 #endif	/* _LINUX_SEQ_FILE_H_ */