test_run.c (79a7f8bdb159d9914b58740f3d31d602a6e4aca8) test_run.c (af2ac3e13e45752af03c8a933f9b6e18841b128b)
1// SPDX-License-Identifier: GPL-2.0-only
2/* Copyright (c) 2017 Facebook
3 */
4#include <linux/bpf.h>
5#include <linux/btf_ids.h>
6#include <linux/slab.h>
7#include <linux/vmalloc.h>
8#include <linux/etherdevice.h>

--- 395 unchanged lines hidden (view full) ---

404 if (!data_in && !data_out)
405 return NULL;
406
407 data = kzalloc(max_size, GFP_USER);
408 if (!data)
409 return ERR_PTR(-ENOMEM);
410
411 if (data_in) {
1// SPDX-License-Identifier: GPL-2.0-only
2/* Copyright (c) 2017 Facebook
3 */
4#include <linux/bpf.h>
5#include <linux/btf_ids.h>
6#include <linux/slab.h>
7#include <linux/vmalloc.h>
8#include <linux/etherdevice.h>

--- 395 unchanged lines hidden (view full) ---

404 if (!data_in && !data_out)
405 return NULL;
406
407 data = kzalloc(max_size, GFP_USER);
408 if (!data)
409 return ERR_PTR(-ENOMEM);
410
411 if (data_in) {
412 err = bpf_check_uarg_tail_zero(data_in, max_size, size);
412 err = bpf_check_uarg_tail_zero(USER_BPFPTR(data_in), max_size, size);
413 if (err) {
414 kfree(data);
415 return ERR_PTR(err);
416 }
417
418 size = min_t(u32, max_size, size);
419 if (copy_from_user(data, data_in, size)) {
420 kfree(data);

--- 543 unchanged lines hidden ---
413 if (err) {
414 kfree(data);
415 return ERR_PTR(err);
416 }
417
418 size = min_t(u32, max_size, size);
419 if (copy_from_user(data, data_in, size)) {
420 kfree(data);

--- 543 unchanged lines hidden ---