diff mbox series

[iproute2/master] bpf: initialize the verifier log

Message ID 20171123010053.2398-1-jakub.kicinski@netronome.com
State Accepted, archived
Delegated to: stephen hemminger
Headers show
Series [iproute2/master] bpf: initialize the verifier log | expand

Commit Message

Jakub Kicinski Nov. 23, 2017, 1 a.m. UTC
If program loading fails before verifier prints its first
message, the verifier log will not be initialized.  Always
set the first character of the log buffer to zero to make
sure we don't dump non-printable characters to the terminal.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
---
 lib/bpf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Daniel Borkmann Nov. 23, 2017, 9:31 a.m. UTC | #1
On 11/23/2017 02:00 AM, Jakub Kicinski wrote:
> If program loading fails before verifier prints its first
> message, the verifier log will not be initialized.  Always
> set the first character of the log buffer to zero to make
> sure we don't dump non-printable characters to the terminal.
> 
> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>

Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Stephen Hemminger Nov. 24, 2017, 4:48 a.m. UTC | #2
On Wed, 22 Nov 2017 17:00:53 -0800
Jakub Kicinski <jakub.kicinski@netronome.com> wrote:

> If program loading fails before verifier prints its first
> message, the verifier log will not be initialized.  Always
> set the first character of the log buffer to zero to make
> sure we don't dump non-printable characters to the terminal.
> 
> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>

Applied thanks
diff mbox series

Patch

diff --git a/lib/bpf.c b/lib/bpf.c
index 10ea23a471ef..fdc28772fb71 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -1153,7 +1153,7 @@  static int bpf_log_realloc(struct bpf_elf_ctx *ctx)
 {
 	const size_t log_max = UINT_MAX >> 8;
 	size_t log_size = ctx->log_size;
-	void *ptr;
+	char *ptr;
 
 	if (!ctx->log) {
 		log_size = 65536;
@@ -1169,6 +1169,7 @@  static int bpf_log_realloc(struct bpf_elf_ctx *ctx)
 	if (!ptr)
 		return -ENOMEM;
 
+	ptr[0] = 0;
 	ctx->log = ptr;
 	ctx->log_size = log_size;