#include #include #include #include "../debug.h" #include "helpline.h" #include "ui.h" #include "../util.h" char ui_helpline__current[512]; static void nop_helpline__pop(void) { } static void nop_helpline__push(const char *msg __maybe_unused) { } static int nop_helpline__show(const char *fmt __maybe_unused, va_list ap __maybe_unused) { return 0; } static struct ui_helpline default_helpline_fns = { .pop = nop_helpline__pop, .push = nop_helpline__push, .show = nop_helpline__show, }; struct ui_helpline *helpline_fns = &default_helpline_fns; void ui_helpline__pop(void) { helpline_fns->pop(); } void ui_helpline__push(const char *msg) { helpline_fns->push(msg); } void ui_helpline__vpush(const char *fmt, va_list ap) { char *s; if (vasprintf(&s, fmt, ap) < 0) vfprintf(stderr, fmt, ap); else { ui_helpline__push(s); free(s); } } void ui_helpline__fpush(const char *fmt, ...) { va_list ap; va_start(ap, fmt); ui_helpline__vpush(fmt, ap); va_end(ap); } void ui_helpline__puts(const char *msg) { ui_helpline__pop(); ui_helpline__push(msg); } int ui_helpline__vshow(const char *fmt, va_list ap) { return helpline_fns->show(fmt, ap); } void ui_helpline__printf(const char *fmt, ...) { va_list ap; ui_helpline__pop(); va_start(ap, fmt); ui_helpline__vpush(fmt, ap); va_end(ap); } value='switch'/> net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-02-06bpf: enable verifier to add 0 to packet ptrWilliam Tu1-0/+23
The patch fixes the case when adding a zero value to the packet pointer. The zero value could come from src_reg equals type BPF_K or CONST_IMM. The patch fixes both, otherwise the verifer reports the following error: [...] R0=imm0,min_value=0,max_value=0 R1=pkt(id=0,off=0,r=4) R2=pkt_end R3=fp-12 R4=imm4,min_value=4,max_value=4 R5=pkt(id=0,off=4,r=4) 269: (bf) r2 = r0 // r2 becomes imm0 270: (77) r2 >>= 3 271: (bf) r4 = r1 // r4 becomes pkt ptr 272: (0f) r4 += r2 // r4 += 0 addition of negative constant to packet pointer is not allowed Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Mihai Budiu <mbudiu@vmware.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-06bpf: test for AND edge casesJosef Bacik1-0/+55
These two tests are based on the work done for f23cc643f9ba. The first test is just a basic one to make sure we don't allow AND'ing negative values, even if it would result in a valid index for the array. The second is a cleaned up version of the original testcase provided by Jann Horn that resulted in the commit. Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: David S. Miller <davem@davemloft.net>