LCOV - code coverage report
Current view: top level - lib/roken - dumpdata.c (source / functions) Hit Total Coverage
Test: samba_4_0_test.lcov.info Lines: 0 29 0.0 %
Date: 2014-04-02 Functions: 0 2 0.0 %
Branches: 0 12 0.0 %

           Branch data     Line data    Source code
       1                 :            : /*
       2                 :            :  * Copyright (c) 2005 Kungliga Tekniska Högskolan
       3                 :            :  * (Royal Institute of Technology, Stockholm, Sweden).
       4                 :            :  * All rights reserved.
       5                 :            :  *
       6                 :            :  * Redistribution and use in source and binary forms, with or without
       7                 :            :  * modification, are permitted provided that the following conditions
       8                 :            :  * are met:
       9                 :            :  *
      10                 :            :  * 1. Redistributions of source code must retain the above copyright
      11                 :            :  *    notice, this list of conditions and the following disclaimer.
      12                 :            :  *
      13                 :            :  * 2. Redistributions in binary form must reproduce the above copyright
      14                 :            :  *    notice, this list of conditions and the following disclaimer in the
      15                 :            :  *    documentation and/or other materials provided with the distribution.
      16                 :            :  *
      17                 :            :  * 3. Neither the name of the Institute nor the names of its contributors
      18                 :            :  *    may be used to endorse or promote products derived from this software
      19                 :            :  *    without specific prior written permission.
      20                 :            :  *
      21                 :            :  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
      22                 :            :  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      23                 :            :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      24                 :            :  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
      25                 :            :  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      26                 :            :  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      27                 :            :  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      28                 :            :  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      29                 :            :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      30                 :            :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      31                 :            :  * SUCH DAMAGE.
      32                 :            :  */
      33                 :            : 
      34                 :            : #include <config.h>
      35                 :            : 
      36                 :            : #include "roken.h"
      37                 :            : 
      38                 :            : /*
      39                 :            :  * Write datablob to a filename, don't care about errors.
      40                 :            :  */
      41                 :            : 
      42                 :            : ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
      43                 :          0 : rk_dumpdata (const char *filename, const void *buf, size_t size)
      44                 :            : {
      45                 :            :     int fd;
      46                 :            : 
      47                 :          0 :     fd = open(filename, O_WRONLY|O_TRUNC|O_CREAT, 0640);
      48         [ #  # ]:          0 :     if (fd < 0)
      49                 :          0 :         return;
      50                 :          0 :     net_write(fd, buf, size);
      51                 :          0 :     close(fd);
      52                 :            : }
      53                 :            : 
      54                 :            : /*
      55                 :            :  * Read all data from a filename, care about errors.
      56                 :            :  */
      57                 :            : 
      58                 :            : ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
      59                 :          0 : rk_undumpdata(const char *filename, void **buf, size_t *size)
      60                 :            : {
      61                 :            :     struct stat sb;
      62                 :            :     int fd, ret;
      63                 :            :     ssize_t sret;
      64                 :            : 
      65                 :          0 :     *buf = NULL;
      66                 :            : 
      67                 :          0 :     fd = open(filename, O_RDONLY, 0);
      68         [ #  # ]:          0 :     if (fd < 0)
      69                 :          0 :         return errno;
      70         [ #  # ]:          0 :     if (fstat(fd, &sb) != 0){
      71                 :          0 :         ret = errno;
      72                 :          0 :         goto out;
      73                 :            :     }
      74                 :          0 :     *buf = malloc(sb.st_size);
      75         [ #  # ]:          0 :     if (*buf == NULL) {
      76                 :          0 :         ret = ENOMEM;
      77                 :          0 :         goto out;
      78                 :            :     }
      79                 :          0 :     *size = sb.st_size;
      80                 :            : 
      81                 :          0 :     sret = net_read(fd, *buf, *size);
      82         [ #  # ]:          0 :     if (sret < 0)
      83                 :          0 :         ret = errno;
      84         [ #  # ]:          0 :     else if (sret != (ssize_t)*size) {
      85                 :          0 :         ret = EINVAL;
      86                 :          0 :         free(*buf);
      87                 :          0 :         *buf = NULL;
      88                 :            :     } else
      89                 :          0 :         ret = 0;
      90                 :            : 
      91                 :            :  out:
      92                 :          0 :     close(fd);
      93                 :          0 :     return ret;
      94                 :            : }

Generated by: LCOV version 1.9