Coverage Report

Created: 2018-08-29 13:53

/src/openssl/crypto/bio/bss_null.c
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the OpenSSL license (the "License").  You may not use
5
 * this file except in compliance with the License.  You can obtain a copy
6
 * in the file LICENSE in the source distribution or at
7
 * https://www.openssl.org/source/license.html
8
 */
9
10
#include <stdio.h>
11
#include <errno.h>
12
#include "bio_lcl.h"
13
#include "internal/cryptlib.h"
14
15
static int null_write(BIO *h, const char *buf, int num);
16
static int null_read(BIO *h, char *buf, int size);
17
static int null_puts(BIO *h, const char *str);
18
static int null_gets(BIO *h, char *str, int size);
19
static long null_ctrl(BIO *h, int cmd, long arg1, void *arg2);
20
static const BIO_METHOD null_method = {
21
    BIO_TYPE_NULL,
22
    "NULL",
23
    /* TODO: Convert to new style write function */
24
    bwrite_conv,
25
    null_write,
26
    /* TODO: Convert to new style read function */
27
    bread_conv,
28
    null_read,
29
    null_puts,
30
    null_gets,
31
    null_ctrl,
32
    NULL,
33
    NULL,
34
    NULL,                     /* null_callback_ctrl */
35
};
36
37
const BIO_METHOD *BIO_s_null(void)
38
0
{
39
0
    return &null_method;
40
0
}
41
42
static int null_read(BIO *b, char *out, int outl)
43
0
{
44
0
    return 0;
45
0
}
46
47
static int null_write(BIO *b, const char *in, int inl)
48
0
{
49
0
    return inl;
50
0
}
51
52
static long null_ctrl(BIO *b, int cmd, long num, void *ptr)
53
0
{
54
0
    long ret = 1;
55
0
56
0
    switch (cmd) {
57
0
    case BIO_CTRL_RESET:
58
0
    case BIO_CTRL_EOF:
59
0
    case BIO_CTRL_SET:
60
0
    case BIO_CTRL_SET_CLOSE:
61
0
    case BIO_CTRL_FLUSH:
62
0
    case BIO_CTRL_DUP:
63
0
        ret = 1;
64
0
        break;
65
0
    case BIO_CTRL_GET_CLOSE:
66
0
    case BIO_CTRL_INFO:
67
0
    case BIO_CTRL_GET:
68
0
    case BIO_CTRL_PENDING:
69
0
    case BIO_CTRL_WPENDING:
70
0
    default:
71
0
        ret = 0;
72
0
        break;
73
0
    }
74
0
    return ret;
75
0
}
76
77
static int null_gets(BIO *bp, char *buf, int size)
78
0
{
79
0
    return 0;
80
0
}
81
82
static int null_puts(BIO *bp, const char *str)
83
0
{
84
0
    if (str == NULL)
85
0
        return 0;
86
0
    return strlen(str);
87
0
}