File tree Expand file tree Collapse file tree 1 file changed +9
-9
lines changed Expand file tree Collapse file tree 1 file changed +9
-9
lines changed Original file line number Diff line number Diff line change @@ -313,15 +313,15 @@ struct sock_fprog __user *get_compat_bpf_fprog(char __user *optval)
313
313
{
314
314
struct compat_sock_fprog __user * fprog32 = (struct compat_sock_fprog __user * )optval ;
315
315
struct sock_fprog __user * kfprog = compat_alloc_user_space (sizeof (struct sock_fprog ));
316
- compat_uptr_t ptr ;
317
- u16 len ;
318
-
319
- if (! access_ok ( VERIFY_READ , fprog32 , sizeof (* fprog32 )) ||
320
- ! access_ok ( VERIFY_WRITE , kfprog , sizeof ( struct sock_fprog )) ||
321
- __get_user ( len , & fprog32 -> len ) ||
322
- __get_user ( ptr , & fprog32 -> filter ) ||
323
- __put_user ( len , & kfprog -> len ) ||
324
- __put_user ( compat_ptr ( ptr ) , & kfprog -> filter ))
316
+ struct compat_sock_fprog f32 ;
317
+ struct sock_fprog f ;
318
+
319
+ if (copy_from_user ( & f32 , fprog32 , sizeof (* fprog32 )))
320
+ return NULL ;
321
+ memset ( & f , 0 , sizeof ( f ));
322
+ f . len = f32 . len ;
323
+ f . filter = compat_ptr ( f32 . filter );
324
+ if ( copy_to_user ( kfprog , & f , sizeof ( struct sock_fprog ) ))
325
325
return NULL ;
326
326
327
327
return kfprog ;
You can’t perform that action at this time.
0 commit comments