LCOV - code coverage report
Current view: top level - ipc - compat.c (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 32 0.0 %
Date: 2022-03-28 15:32:58 Functions: 0 4 0.0 %
Branches: 0 12 0.0 %

           Branch data     Line data    Source code
       1                 :            : // SPDX-License-Identifier: GPL-2.0
       2                 :            : /*
       3                 :            :  * 32 bit compatibility code for System V IPC
       4                 :            :  *
       5                 :            :  * Copyright (C) 1997,1998      Jakub Jelinek (jj@sunsite.mff.cuni.cz)
       6                 :            :  * Copyright (C) 1997           David S. Miller (davem@caip.rutgers.edu)
       7                 :            :  * Copyright (C) 1999           Arun Sharma <arun.sharma@intel.com>
       8                 :            :  * Copyright (C) 2000           VA Linux Co
       9                 :            :  * Copyright (C) 2000           Don Dugger <n0ano@valinux.com>
      10                 :            :  * Copyright (C) 2000           Hewlett-Packard Co.
      11                 :            :  * Copyright (C) 2000           David Mosberger-Tang <davidm@hpl.hp.com>
      12                 :            :  * Copyright (C) 2000           Gerhard Tonn (ton@de.ibm.com)
      13                 :            :  * Copyright (C) 2000-2002      Andi Kleen, SuSE Labs (x86-64 port)
      14                 :            :  * Copyright (C) 2000           Silicon Graphics, Inc.
      15                 :            :  * Copyright (C) 2001           IBM
      16                 :            :  * Copyright (C) 2004           IBM Deutschland Entwicklung GmbH, IBM Corporation
      17                 :            :  * Copyright (C) 2004           Arnd Bergmann (arnd@arndb.de)
      18                 :            :  *
      19                 :            :  * This code is collected from the versions for sparc64, mips64, s390x, ia64,
      20                 :            :  * ppc64 and x86_64, all of which are based on the original sparc64 version
      21                 :            :  * by Jakub Jelinek.
      22                 :            :  *
      23                 :            :  */
      24                 :            : #include <linux/compat.h>
      25                 :            : #include <linux/errno.h>
      26                 :            : #include <linux/highuid.h>
      27                 :            : #include <linux/init.h>
      28                 :            : #include <linux/msg.h>
      29                 :            : #include <linux/shm.h>
      30                 :            : #include <linux/syscalls.h>
      31                 :            : #include <linux/ptrace.h>
      32                 :            : 
      33                 :            : #include <linux/mutex.h>
      34                 :            : #include <linux/uaccess.h>
      35                 :            : 
      36                 :            : #include "util.h"
      37                 :            : 
      38                 :          0 : int get_compat_ipc64_perm(struct ipc64_perm *to,
      39                 :            :                           struct compat_ipc64_perm __user *from)
      40                 :            : {
      41                 :          0 :         struct compat_ipc64_perm v;
      42         [ #  # ]:          0 :         if (copy_from_user(&v, from, sizeof(v)))
      43                 :            :                 return -EFAULT;
      44                 :          0 :         to->uid = v.uid;
      45                 :          0 :         to->gid = v.gid;
      46                 :          0 :         to->mode = v.mode;
      47                 :          0 :         return 0;
      48                 :            : }
      49                 :            : 
      50                 :          0 : int get_compat_ipc_perm(struct ipc64_perm *to,
      51                 :            :                         struct compat_ipc_perm __user *from)
      52                 :            : {
      53                 :          0 :         struct compat_ipc_perm v;
      54         [ #  # ]:          0 :         if (copy_from_user(&v, from, sizeof(v)))
      55                 :            :                 return -EFAULT;
      56                 :          0 :         to->uid = v.uid;
      57                 :          0 :         to->gid = v.gid;
      58                 :          0 :         to->mode = v.mode;
      59                 :          0 :         return 0;
      60                 :            : }
      61                 :            : 
      62                 :          0 : void to_compat_ipc64_perm(struct compat_ipc64_perm *to, struct ipc64_perm *from)
      63                 :            : {
      64                 :          0 :         to->key = from->key;
      65                 :          0 :         to->uid = from->uid;
      66                 :          0 :         to->gid = from->gid;
      67                 :          0 :         to->cuid = from->cuid;
      68                 :          0 :         to->cgid = from->cgid;
      69                 :          0 :         to->mode = from->mode;
      70                 :          0 :         to->seq = from->seq;
      71                 :          0 : }
      72                 :            : 
      73                 :          0 : void to_compat_ipc_perm(struct compat_ipc_perm *to, struct ipc64_perm *from)
      74                 :            : {
      75                 :          0 :         to->key = from->key;
      76         [ #  # ]:          0 :         SET_UID(to->uid, from->uid);
      77         [ #  # ]:          0 :         SET_GID(to->gid, from->gid);
      78         [ #  # ]:          0 :         SET_UID(to->cuid, from->cuid);
      79         [ #  # ]:          0 :         SET_GID(to->cgid, from->cgid);
      80                 :          0 :         to->mode = from->mode;
      81                 :          0 :         to->seq = from->seq;
      82                 :          0 : }

Generated by: LCOV version 1.14