From: Dan Carpenter <dan.carpenter@oracle.com> To: Jeff Dike <jdike@addtoit.com>, Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Richard Weinberger <richard@nod.at>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andriin@fb.com>, Alex Dewar <alex.dewar@gmx.co.uk>, linux-um@lists.infradead.org, bpf@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [PATCH] um: Date: Tue, 28 Jan 2020 18:10:00 +0300 [thread overview] Message-ID: <20200128151000.kx2bwayuuxpuqn6t@kili.mountain> (raw) In-Reply-To: <de3bdae8-2dcd-490f-cdf2-67bf92a552e8@cambridgegreys.com> 1) The uml_vector_user_bpf() returns pointers so it should return NULL instead of false. 2) If the "bpf_prog" allocation failed, it would have eventually lead to a crash. We can't succeed after the error happens so it should just return. Fixes: 9807019a62dc ("um: Loadable BPF "Firmware" for vector drivers") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- v2: The first version broke the build. Shame upon me. arch/um/drivers/vector_user.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/arch/um/drivers/vector_user.c b/arch/um/drivers/vector_user.c index ddcd917be0af..1403cbadf92b 100644 --- a/arch/um/drivers/vector_user.c +++ b/arch/um/drivers/vector_user.c @@ -732,13 +732,14 @@ void *uml_vector_user_bpf(char *filename) if (stat(filename, &statbuf) < 0) { printk(KERN_ERR "Error %d reading bpf file", -errno); - return false; + return NULL; } bpf_prog = uml_kmalloc(sizeof(struct sock_fprog), UM_GFP_KERNEL); - if (bpf_prog != NULL) { - bpf_prog->len = statbuf.st_size / sizeof(struct sock_filter); - bpf_prog->filter = NULL; - } + if (bpf_prog == NULL) + return NULL; + bpf_prog->len = statbuf.st_size / sizeof(struct sock_filter); + bpf_prog->filter = NULL; + ffd = os_open_file(filename, of_read(OPENFLAGS()), 0); if (ffd < 0) { printk(KERN_ERR "Error %d opening bpf file", -errno); -- 2.11.0
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com> To: Jeff Dike <jdike@addtoit.com>, Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Richard Weinberger <richard@nod.at>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andriin@fb.com>, Alex Dewar <alex.dewar@gmx.co.uk>, linux-um@lists.infradead.org, bpf@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [PATCH v3] um: Fix some error handling in uml_vector_user_bpf() Date: Tue, 28 Jan 2020 18:27:03 +0300 [thread overview] Message-ID: <20200128151000.kx2bwayuuxpuqn6t@kili.mountain> (raw) Message-ID: <20200128152703.53Nsc9Mh0PWaTGkVnCPZkAH95w7ysWrel5w1PR_eq0E@z> (raw) 1) The uml_vector_user_bpf() returns pointers so it should return NULL instead of false. 2) If the "bpf_prog" allocation failed, it would have eventually lead to a crash. We can't succeed after the error happens so it should just return. Fixes: 9807019a62dc ("um: Loadable BPF "Firmware" for vector drivers") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- v3: Fix screwed up subject. Sorry. Not my most shining hour. v2: The first version broke the build. Shame upon me. arch/um/drivers/vector_user.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/arch/um/drivers/vector_user.c b/arch/um/drivers/vector_user.c index ddcd917be0af..1403cbadf92b 100644 --- a/arch/um/drivers/vector_user.c +++ b/arch/um/drivers/vector_user.c @@ -732,13 +732,14 @@ void *uml_vector_user_bpf(char *filename) if (stat(filename, &statbuf) < 0) { printk(KERN_ERR "Error %d reading bpf file", -errno); - return false; + return NULL; } bpf_prog = uml_kmalloc(sizeof(struct sock_fprog), UM_GFP_KERNEL); - if (bpf_prog != NULL) { - bpf_prog->len = statbuf.st_size / sizeof(struct sock_filter); - bpf_prog->filter = NULL; - } + if (bpf_prog == NULL) + return NULL; + bpf_prog->len = statbuf.st_size / sizeof(struct sock_filter); + bpf_prog->filter = NULL; + ffd = os_open_file(filename, of_read(OPENFLAGS()), 0); if (ffd < 0) { printk(KERN_ERR "Error %d opening bpf file", -errno); -- 2.11.0
next prev parent reply other threads:[~2020-01-28 15:11 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-24 10:14 [PATCH] um: Fix some error handling in uml_vector_user_bpf() Dan Carpenter 2020-01-24 12:52 ` Anton Ivanov 2020-01-24 16:44 ` Dan Carpenter 2020-01-24 16:48 ` Anton Ivanov 2020-01-25 6:01 ` Dan Carpenter 2020-01-28 15:10 ` Dan Carpenter [this message] 2020-01-28 15:27 ` [PATCH v3] " Dan Carpenter 2020-02-10 14:17 ` Anton Ivanov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200128151000.kx2bwayuuxpuqn6t@kili.mountain \ --to=dan.carpenter@oracle.com \ --cc=alex.dewar@gmx.co.uk \ --cc=andriin@fb.com \ --cc=anton.ivanov@cambridgegreys.com \ --cc=ast@kernel.org \ --cc=bpf@vger.kernel.org \ --cc=daniel@iogearbox.net \ --cc=jdike@addtoit.com \ --cc=kafai@fb.com \ --cc=kernel-janitors@vger.kernel.org \ --cc=linux-um@lists.infradead.org \ --cc=richard@nod.at \ --cc=songliubraving@fb.com \ --cc=yhs@fb.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).