| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/a_strex.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||||||||
| 4 | static int | - | ||||||||||||||||||||||||||||||
| 5 | send_bio_chars(void *arg, const void *buf, int len) | - | ||||||||||||||||||||||||||||||
| 6 | { | - | ||||||||||||||||||||||||||||||
| 7 | if (!arg
| 0 | ||||||||||||||||||||||||||||||
| 8 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 9 | if (BIO_write(arg, buf, len) != len
| 0 | ||||||||||||||||||||||||||||||
| 10 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||
| 11 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 12 | } | - | ||||||||||||||||||||||||||||||
| 13 | - | |||||||||||||||||||||||||||||||
| 14 | static int | - | ||||||||||||||||||||||||||||||
| 15 | send_fp_chars(void *arg, const void *buf, int len) | - | ||||||||||||||||||||||||||||||
| 16 | { | - | ||||||||||||||||||||||||||||||
| 17 | if (!arg
| 0 | ||||||||||||||||||||||||||||||
| 18 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 19 | if (fwrite(buf, 1, (size_t)len, arg) != (size_t)len
| 0 | ||||||||||||||||||||||||||||||
| 20 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||
| 21 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 22 | } | - | ||||||||||||||||||||||||||||||
| 23 | - | |||||||||||||||||||||||||||||||
| 24 | typedef int char_io(void *arg, const void *buf, int len); | - | ||||||||||||||||||||||||||||||
| 25 | static int | - | ||||||||||||||||||||||||||||||
| 26 | do_esc_char(unsigned long c, unsigned char flags, char *do_quotes, | - | ||||||||||||||||||||||||||||||
| 27 | char_io *io_ch, void *arg) | - | ||||||||||||||||||||||||||||||
| 28 | { | - | ||||||||||||||||||||||||||||||
| 29 | unsigned char chflgs, chtmp; | - | ||||||||||||||||||||||||||||||
| 30 | char tmphex[sizeof(long) * 2 + 3]; | - | ||||||||||||||||||||||||||||||
| 31 | - | |||||||||||||||||||||||||||||||
| 32 | if (c > 0xffffffffL
| 0 | ||||||||||||||||||||||||||||||
| 33 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 34 | if (c > 0xffff
| 0 | ||||||||||||||||||||||||||||||
| 35 | snprintf(tmphex, sizeof tmphex, "\\W%08lX", c); | - | ||||||||||||||||||||||||||||||
| 36 | if (!io_ch(arg, tmphex, 10)
| 0 | ||||||||||||||||||||||||||||||
| 37 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 38 | return never executed: 10;return 10;never executed: return 10; | 0 | ||||||||||||||||||||||||||||||
| 39 | } | - | ||||||||||||||||||||||||||||||
| 40 | if (c > 0xff
| 0 | ||||||||||||||||||||||||||||||
| 41 | snprintf(tmphex, sizeof tmphex, "\\U%04lX", c); | - | ||||||||||||||||||||||||||||||
| 42 | if (!io_ch(arg, tmphex, 6)
| 0 | ||||||||||||||||||||||||||||||
| 43 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 44 | return never executed: 6;return 6;never executed: return 6; | 0 | ||||||||||||||||||||||||||||||
| 45 | } | - | ||||||||||||||||||||||||||||||
| 46 | chtmp = (unsigned char)c; | - | ||||||||||||||||||||||||||||||
| 47 | if (chtmp > 0x7f
| 0 | ||||||||||||||||||||||||||||||
| 48 | chflgs = flags & 4; never executed: chflgs = flags & 4; | 0 | ||||||||||||||||||||||||||||||
| 49 | else | - | ||||||||||||||||||||||||||||||
| 50 | chflgs = char_type[chtmp] & flags; never executed: chflgs = char_type[chtmp] & flags; | 0 | ||||||||||||||||||||||||||||||
| 51 | if (chflgs & (1 | 0x20 | 0x40)
| 0 | ||||||||||||||||||||||||||||||
| 52 | - | |||||||||||||||||||||||||||||||
| 53 | if (chflgs & 8
| 0 | ||||||||||||||||||||||||||||||
| 54 | if (do_quotes
| 0 | ||||||||||||||||||||||||||||||
| 55 | * never executed: do_quotes = 1;*do_quotes = 1;never executed: *do_quotes = 1; | 0 | ||||||||||||||||||||||||||||||
| 56 | if (!io_ch(arg, &chtmp, 1)
| 0 | ||||||||||||||||||||||||||||||
| 57 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 58 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 59 | } | - | ||||||||||||||||||||||||||||||
| 60 | if (!io_ch(arg, "\\", 1)
| 0 | ||||||||||||||||||||||||||||||
| 61 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 62 | if (!io_ch(arg, &chtmp, 1)
| 0 | ||||||||||||||||||||||||||||||
| 63 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 64 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||||||||
| 65 | } | - | ||||||||||||||||||||||||||||||
| 66 | if (chflgs & (2|4)
| 0 | ||||||||||||||||||||||||||||||
| 67 | snprintf(tmphex, sizeof tmphex, "\\%02X", chtmp); | - | ||||||||||||||||||||||||||||||
| 68 | if (!io_ch(arg, tmphex, 3)
| 0 | ||||||||||||||||||||||||||||||
| 69 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 70 | return never executed: 3;return 3;never executed: return 3; | 0 | ||||||||||||||||||||||||||||||
| 71 | } | - | ||||||||||||||||||||||||||||||
| 72 | - | |||||||||||||||||||||||||||||||
| 73 | - | |||||||||||||||||||||||||||||||
| 74 | - | |||||||||||||||||||||||||||||||
| 75 | if (chtmp == '\\'
| 0 | ||||||||||||||||||||||||||||||
| 76 | if (!io_ch(arg, "\\\\", 2)
| 0 | ||||||||||||||||||||||||||||||
| 77 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 78 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||||||||
| 79 | } | - | ||||||||||||||||||||||||||||||
| 80 | if (!io_ch(arg, &chtmp, 1)
| 0 | ||||||||||||||||||||||||||||||
| 81 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 82 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 83 | } | - | ||||||||||||||||||||||||||||||
| 84 | static int | - | ||||||||||||||||||||||||||||||
| 85 | do_buf(unsigned char *buf, int buflen, int type, unsigned char flags, | - | ||||||||||||||||||||||||||||||
| 86 | char *quotes, char_io *io_ch, void *arg) | - | ||||||||||||||||||||||||||||||
| 87 | { | - | ||||||||||||||||||||||||||||||
| 88 | int i, outlen, len; | - | ||||||||||||||||||||||||||||||
| 89 | unsigned char orflags, *p, *q; | - | ||||||||||||||||||||||||||||||
| 90 | unsigned long c; | - | ||||||||||||||||||||||||||||||
| 91 | - | |||||||||||||||||||||||||||||||
| 92 | p = buf; | - | ||||||||||||||||||||||||||||||
| 93 | q = buf + buflen; | - | ||||||||||||||||||||||||||||||
| 94 | outlen = 0; | - | ||||||||||||||||||||||||||||||
| 95 | while (p != q
| 0 | ||||||||||||||||||||||||||||||
| 96 | if (p == buf
| 0 | ||||||||||||||||||||||||||||||
| 97 | orflags = 0x20; never executed: orflags = 0x20; | 0 | ||||||||||||||||||||||||||||||
| 98 | else | - | ||||||||||||||||||||||||||||||
| 99 | orflags = 0; never executed: orflags = 0; | 0 | ||||||||||||||||||||||||||||||
| 100 | switch (type & 0x7) { | - | ||||||||||||||||||||||||||||||
| 101 | case never executed: 4:case 4:never executed: case 4: | 0 | ||||||||||||||||||||||||||||||
| 102 | c = ((unsigned long)*p++) << 24; | - | ||||||||||||||||||||||||||||||
| 103 | c |= ((unsigned long)*p++) << 16; | - | ||||||||||||||||||||||||||||||
| 104 | c |= ((unsigned long)*p++) << 8; | - | ||||||||||||||||||||||||||||||
| 105 | c |= *p++; | - | ||||||||||||||||||||||||||||||
| 106 | if (c > 0x10FFFF
| 0 | ||||||||||||||||||||||||||||||
| 107 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 108 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 109 | - | |||||||||||||||||||||||||||||||
| 110 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||||||||
| 111 | c = ((unsigned long)*p++) << 8; | - | ||||||||||||||||||||||||||||||
| 112 | c |= *p++; | - | ||||||||||||||||||||||||||||||
| 113 | if (((
| 0 | ||||||||||||||||||||||||||||||
| 114 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 115 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 116 | - | |||||||||||||||||||||||||||||||
| 117 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||||||||||||||||||||
| 118 | c = *p++; | - | ||||||||||||||||||||||||||||||
| 119 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 120 | - | |||||||||||||||||||||||||||||||
| 121 | case never executed: 0:case 0:never executed: case 0: | 0 | ||||||||||||||||||||||||||||||
| 122 | i = UTF8_getc(p, q - p, &c); | - | ||||||||||||||||||||||||||||||
| 123 | if (i < 0
| 0 | ||||||||||||||||||||||||||||||
| 124 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 125 | p += i; | - | ||||||||||||||||||||||||||||||
| 126 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 127 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||||||||
| 128 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 129 | } | - | ||||||||||||||||||||||||||||||
| 130 | if (p == q
| 0 | ||||||||||||||||||||||||||||||
| 131 | orflags = 0x40; never executed: orflags = 0x40; | 0 | ||||||||||||||||||||||||||||||
| 132 | if (type & 0x8
| 0 | ||||||||||||||||||||||||||||||
| 133 | unsigned char utfbuf[6]; | - | ||||||||||||||||||||||||||||||
| 134 | int utflen; | - | ||||||||||||||||||||||||||||||
| 135 | - | |||||||||||||||||||||||||||||||
| 136 | utflen = UTF8_putc(utfbuf, sizeof utfbuf, c); | - | ||||||||||||||||||||||||||||||
| 137 | if (utflen < 0
| 0 | ||||||||||||||||||||||||||||||
| 138 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 139 | for (i = 0; i < utflen
| 0 | ||||||||||||||||||||||||||||||
| 140 | - | |||||||||||||||||||||||||||||||
| 141 | - | |||||||||||||||||||||||||||||||
| 142 | - | |||||||||||||||||||||||||||||||
| 143 | - | |||||||||||||||||||||||||||||||
| 144 | - | |||||||||||||||||||||||||||||||
| 145 | len = do_esc_char(utfbuf[i], | - | ||||||||||||||||||||||||||||||
| 146 | (unsigned char)(flags | orflags), quotes, | - | ||||||||||||||||||||||||||||||
| 147 | io_ch, arg); | - | ||||||||||||||||||||||||||||||
| 148 | if (len < 0
| 0 | ||||||||||||||||||||||||||||||
| 149 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 150 | outlen += len; | - | ||||||||||||||||||||||||||||||
| 151 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 152 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
| 153 | len = do_esc_char(c, (unsigned char)(flags | orflags), | - | ||||||||||||||||||||||||||||||
| 154 | quotes, io_ch, arg); | - | ||||||||||||||||||||||||||||||
| 155 | if (len < 0
| 0 | ||||||||||||||||||||||||||||||
| 156 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 157 | outlen += len; | - | ||||||||||||||||||||||||||||||
| 158 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 159 | } | - | ||||||||||||||||||||||||||||||
| 160 | return never executed: outlen;return outlen;never executed: return outlen; | 0 | ||||||||||||||||||||||||||||||
| 161 | } | - | ||||||||||||||||||||||||||||||
| 162 | - | |||||||||||||||||||||||||||||||
| 163 | - | |||||||||||||||||||||||||||||||
| 164 | - | |||||||||||||||||||||||||||||||
| 165 | static int | - | ||||||||||||||||||||||||||||||
| 166 | do_hex_dump(char_io *io_ch, void *arg, unsigned char *buf, int buflen) | - | ||||||||||||||||||||||||||||||
| 167 | { | - | ||||||||||||||||||||||||||||||
| 168 | static const char hexdig[] = "0123456789ABCDEF"; | - | ||||||||||||||||||||||||||||||
| 169 | unsigned char *p, *q; | - | ||||||||||||||||||||||||||||||
| 170 | char hextmp[2]; | - | ||||||||||||||||||||||||||||||
| 171 | if (arg
| 0 | ||||||||||||||||||||||||||||||
| 172 | p = buf; | - | ||||||||||||||||||||||||||||||
| 173 | q = buf + buflen; | - | ||||||||||||||||||||||||||||||
| 174 | while (p != q
| 0 | ||||||||||||||||||||||||||||||
| 175 | hextmp[0] = hexdig[*p >> 4]; | - | ||||||||||||||||||||||||||||||
| 176 | hextmp[1] = hexdig[*p & 0xf]; | - | ||||||||||||||||||||||||||||||
| 177 | if (!io_ch(arg, hextmp, 2)
| 0 | ||||||||||||||||||||||||||||||
| 178 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 179 | p++; | - | ||||||||||||||||||||||||||||||
| 180 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 181 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 182 | return never executed: buflen << 1;return buflen << 1;never executed: return buflen << 1; | 0 | ||||||||||||||||||||||||||||||
| 183 | } | - | ||||||||||||||||||||||||||||||
| 184 | - | |||||||||||||||||||||||||||||||
| 185 | - | |||||||||||||||||||||||||||||||
| 186 | - | |||||||||||||||||||||||||||||||
| 187 | - | |||||||||||||||||||||||||||||||
| 188 | - | |||||||||||||||||||||||||||||||
| 189 | - | |||||||||||||||||||||||||||||||
| 190 | - | |||||||||||||||||||||||||||||||
| 191 | static int | - | ||||||||||||||||||||||||||||||
| 192 | do_dump(unsigned long lflags, char_io *io_ch, void *arg, const ASN1_STRING *str) | - | ||||||||||||||||||||||||||||||
| 193 | { | - | ||||||||||||||||||||||||||||||
| 194 | - | |||||||||||||||||||||||||||||||
| 195 | - | |||||||||||||||||||||||||||||||
| 196 | - | |||||||||||||||||||||||||||||||
| 197 | ASN1_TYPE t; | - | ||||||||||||||||||||||||||||||
| 198 | unsigned char *der_buf, *p; | - | ||||||||||||||||||||||||||||||
| 199 | int outlen, der_len; | - | ||||||||||||||||||||||||||||||
| 200 | - | |||||||||||||||||||||||||||||||
| 201 | if (!io_ch(arg, "#", 1)
| 0 | ||||||||||||||||||||||||||||||
| 202 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 203 | - | |||||||||||||||||||||||||||||||
| 204 | if (!(lflags & 0x200)
| 0 | ||||||||||||||||||||||||||||||
| 205 | outlen = do_hex_dump(io_ch, arg, str->data, str->length); | - | ||||||||||||||||||||||||||||||
| 206 | if (outlen < 0
| 0 | ||||||||||||||||||||||||||||||
| 207 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 208 | return never executed: outlen + 1;return outlen + 1;never executed: return outlen + 1; | 0 | ||||||||||||||||||||||||||||||
| 209 | } | - | ||||||||||||||||||||||||||||||
| 210 | t.type = str->type; | - | ||||||||||||||||||||||||||||||
| 211 | t.value.ptr = (char *)str; | - | ||||||||||||||||||||||||||||||
| 212 | der_len = i2d_ASN1_TYPE(&t, | - | ||||||||||||||||||||||||||||||
| 213 | ((void *)0) | - | ||||||||||||||||||||||||||||||
| 214 | ); | - | ||||||||||||||||||||||||||||||
| 215 | der_buf = malloc(der_len); | - | ||||||||||||||||||||||||||||||
| 216 | if (!der_buf
| 0 | ||||||||||||||||||||||||||||||
| 217 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 218 | p = der_buf; | - | ||||||||||||||||||||||||||||||
| 219 | i2d_ASN1_TYPE(&t, &p); | - | ||||||||||||||||||||||||||||||
| 220 | outlen = do_hex_dump(io_ch, arg, der_buf, der_len); | - | ||||||||||||||||||||||||||||||
| 221 | free(der_buf); | - | ||||||||||||||||||||||||||||||
| 222 | if (outlen < 0
| 0 | ||||||||||||||||||||||||||||||
| 223 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 224 | return never executed: outlen + 1;return outlen + 1;never executed: return outlen + 1; | 0 | ||||||||||||||||||||||||||||||
| 225 | } | - | ||||||||||||||||||||||||||||||
| 226 | - | |||||||||||||||||||||||||||||||
| 227 | - | |||||||||||||||||||||||||||||||
| 228 | - | |||||||||||||||||||||||||||||||
| 229 | - | |||||||||||||||||||||||||||||||
| 230 | - | |||||||||||||||||||||||||||||||
| 231 | - | |||||||||||||||||||||||||||||||
| 232 | static const signed char tag2nbyte[] = { | - | ||||||||||||||||||||||||||||||
| 233 | -1, -1, -1, -1, -1, | - | ||||||||||||||||||||||||||||||
| 234 | -1, -1, -1, -1, -1, | - | ||||||||||||||||||||||||||||||
| 235 | -1, -1, 0, -1, | - | ||||||||||||||||||||||||||||||
| 236 | -1, -1, -1, -1, | - | ||||||||||||||||||||||||||||||
| 237 | -1, 1, 1, | - | ||||||||||||||||||||||||||||||
| 238 | -1, 1, 1, 1, | - | ||||||||||||||||||||||||||||||
| 239 | -1, 1, -1, | - | ||||||||||||||||||||||||||||||
| 240 | 4, -1, 2 | - | ||||||||||||||||||||||||||||||
| 241 | }; | - | ||||||||||||||||||||||||||||||
| 242 | static int | - | ||||||||||||||||||||||||||||||
| 243 | do_print_ex(char_io *io_ch, void *arg, unsigned long lflags, | - | ||||||||||||||||||||||||||||||
| 244 | const ASN1_STRING *str) | - | ||||||||||||||||||||||||||||||
| 245 | { | - | ||||||||||||||||||||||||||||||
| 246 | int outlen, len; | - | ||||||||||||||||||||||||||||||
| 247 | int type; | - | ||||||||||||||||||||||||||||||
| 248 | char quotes; | - | ||||||||||||||||||||||||||||||
| 249 | unsigned char flags; | - | ||||||||||||||||||||||||||||||
| 250 | - | |||||||||||||||||||||||||||||||
| 251 | quotes = 0; | - | ||||||||||||||||||||||||||||||
| 252 | - | |||||||||||||||||||||||||||||||
| 253 | flags = (unsigned char)(lflags & (1 | 8 | 2 | 4)); | - | ||||||||||||||||||||||||||||||
| 254 | type = str->type; | - | ||||||||||||||||||||||||||||||
| 255 | outlen = 0; | - | ||||||||||||||||||||||||||||||
| 256 | - | |||||||||||||||||||||||||||||||
| 257 | if (lflags & 0x40
| 0 | ||||||||||||||||||||||||||||||
| 258 | const char *tagname; | - | ||||||||||||||||||||||||||||||
| 259 | tagname = ASN1_tag2str(type); | - | ||||||||||||||||||||||||||||||
| 260 | outlen += strlen(tagname); | - | ||||||||||||||||||||||||||||||
| 261 | if (!io_ch(arg, tagname, outlen)
| 0 | ||||||||||||||||||||||||||||||
| 262 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 263 | outlen++; | - | ||||||||||||||||||||||||||||||
| 264 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 265 | - | |||||||||||||||||||||||||||||||
| 266 | - | |||||||||||||||||||||||||||||||
| 267 | - | |||||||||||||||||||||||||||||||
| 268 | - | |||||||||||||||||||||||||||||||
| 269 | if (lflags & 0x80
| 0 | ||||||||||||||||||||||||||||||
| 270 | type = -1; never executed: type = -1; | 0 | ||||||||||||||||||||||||||||||
| 271 | - | |||||||||||||||||||||||||||||||
| 272 | else if (lflags & 0x20
| 0 | ||||||||||||||||||||||||||||||
| 273 | type = 1; never executed: type = 1; | 0 | ||||||||||||||||||||||||||||||
| 274 | else { | - | ||||||||||||||||||||||||||||||
| 275 | - | |||||||||||||||||||||||||||||||
| 276 | if ((
| 0 | ||||||||||||||||||||||||||||||
| 277 | type = tag2nbyte[type]; never executed: type = tag2nbyte[type]; | 0 | ||||||||||||||||||||||||||||||
| 278 | else | - | ||||||||||||||||||||||||||||||
| 279 | type = -1; never executed: type = -1; | 0 | ||||||||||||||||||||||||||||||
| 280 | if ((
| 0 | ||||||||||||||||||||||||||||||
| 281 | type = 1; never executed: type = 1; | 0 | ||||||||||||||||||||||||||||||
| 282 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 283 | - | |||||||||||||||||||||||||||||||
| 284 | if (type == -1
| 0 | ||||||||||||||||||||||||||||||
| 285 | len = do_dump(lflags, io_ch, arg, str); | - | ||||||||||||||||||||||||||||||
| 286 | if (len < 0
| 0 | ||||||||||||||||||||||||||||||
| 287 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 288 | outlen += len; | - | ||||||||||||||||||||||||||||||
| 289 | return never executed: outlen;return outlen;never executed: return outlen; | 0 | ||||||||||||||||||||||||||||||
| 290 | } | - | ||||||||||||||||||||||||||||||
| 291 | - | |||||||||||||||||||||||||||||||
| 292 | if (lflags & 0x10
| 0 | ||||||||||||||||||||||||||||||
| 293 | - | |||||||||||||||||||||||||||||||
| 294 | - | |||||||||||||||||||||||||||||||
| 295 | - | |||||||||||||||||||||||||||||||
| 296 | - | |||||||||||||||||||||||||||||||
| 297 | - | |||||||||||||||||||||||||||||||
| 298 | if (!type
| 0 | ||||||||||||||||||||||||||||||
| 299 | type = 1; never executed: type = 1; | 0 | ||||||||||||||||||||||||||||||
| 300 | else | - | ||||||||||||||||||||||||||||||
| 301 | type |= 0x8; never executed: type |= 0x8; | 0 | ||||||||||||||||||||||||||||||
| 302 | } | - | ||||||||||||||||||||||||||||||
| 303 | - | |||||||||||||||||||||||||||||||
| 304 | len = do_buf(str->data, str->length, type, flags, "es, io_ch, | - | ||||||||||||||||||||||||||||||
| 305 | ((void *)0) | - | ||||||||||||||||||||||||||||||
| 306 | ); | - | ||||||||||||||||||||||||||||||
| 307 | if (len < 0
| 0 | ||||||||||||||||||||||||||||||
| 308 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 309 | outlen += len; | - | ||||||||||||||||||||||||||||||
| 310 | if (quotes
| 0 | ||||||||||||||||||||||||||||||
| 311 | outlen += 2; never executed: outlen += 2; | 0 | ||||||||||||||||||||||||||||||
| 312 | if (!arg
| 0 | ||||||||||||||||||||||||||||||
| 313 | return never executed: outlen;return outlen;never executed: return outlen; | 0 | ||||||||||||||||||||||||||||||
| 314 | if (quotes
| 0 | ||||||||||||||||||||||||||||||
| 315 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 316 | if (do_buf(str->data, str->length, type, flags,
| 0 | ||||||||||||||||||||||||||||||
| 317 | ((void *)0)
| 0 | ||||||||||||||||||||||||||||||
| 318 | , io_ch, arg) < 0
| 0 | ||||||||||||||||||||||||||||||
| 319 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 320 | if (quotes
| 0 | ||||||||||||||||||||||||||||||
| 321 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 322 | return never executed: outlen;return outlen;never executed: return outlen; | 0 | ||||||||||||||||||||||||||||||
| 323 | } | - | ||||||||||||||||||||||||||||||
| 324 | - | |||||||||||||||||||||||||||||||
| 325 | - | |||||||||||||||||||||||||||||||
| 326 | - | |||||||||||||||||||||||||||||||
| 327 | static int | - | ||||||||||||||||||||||||||||||
| 328 | do_indent(char_io *io_ch, void *arg, int indent) | - | ||||||||||||||||||||||||||||||
| 329 | { | - | ||||||||||||||||||||||||||||||
| 330 | int i; | - | ||||||||||||||||||||||||||||||
| 331 | for (i = 0; i < indent
| 0 | ||||||||||||||||||||||||||||||
| 332 | if (!io_ch(arg, " ", 1)
| 0 | ||||||||||||||||||||||||||||||
| 333 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||
| 334 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||||||||
| 335 | } | - | ||||||||||||||||||||||||||||||
| 336 | - | |||||||||||||||||||||||||||||||
| 337 | - | |||||||||||||||||||||||||||||||
| 338 | - | |||||||||||||||||||||||||||||||
| 339 | - | |||||||||||||||||||||||||||||||
| 340 | static int | - | ||||||||||||||||||||||||||||||
| 341 | do_name_ex(char_io *io_ch, void *arg, const X509_NAME *n, int indent, | - | ||||||||||||||||||||||||||||||
| 342 | unsigned long flags) | - | ||||||||||||||||||||||||||||||
| 343 | { | - | ||||||||||||||||||||||||||||||
| 344 | int i, prev = -1, orflags, cnt; | - | ||||||||||||||||||||||||||||||
| 345 | int fn_opt, fn_nid; | - | ||||||||||||||||||||||||||||||
| 346 | ASN1_OBJECT *fn; | - | ||||||||||||||||||||||||||||||
| 347 | ASN1_STRING *val; | - | ||||||||||||||||||||||||||||||
| 348 | X509_NAME_ENTRY *ent; | - | ||||||||||||||||||||||||||||||
| 349 | char objtmp[80]; | - | ||||||||||||||||||||||||||||||
| 350 | const char *objbuf; | - | ||||||||||||||||||||||||||||||
| 351 | int outlen, len; | - | ||||||||||||||||||||||||||||||
| 352 | char *sep_dn, *sep_mv, *sep_eq; | - | ||||||||||||||||||||||||||||||
| 353 | int sep_dn_len, sep_mv_len, sep_eq_len; | - | ||||||||||||||||||||||||||||||
| 354 | - | |||||||||||||||||||||||||||||||
| 355 | if (indent < 0
| 0 | ||||||||||||||||||||||||||||||
| 356 | indent = 0; never executed: indent = 0; | 0 | ||||||||||||||||||||||||||||||
| 357 | outlen = indent; | - | ||||||||||||||||||||||||||||||
| 358 | if (!do_indent(io_ch, arg, indent)
| 0 | ||||||||||||||||||||||||||||||
| 359 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 360 | - | |||||||||||||||||||||||||||||||
| 361 | switch (flags & (0xf << 16)) { | - | ||||||||||||||||||||||||||||||
| 362 | case never executed: (4 << 16):case (4 << 16):never executed: case (4 << 16): | 0 | ||||||||||||||||||||||||||||||
| 363 | sep_dn = "\n"; | - | ||||||||||||||||||||||||||||||
| 364 | sep_dn_len = 1; | - | ||||||||||||||||||||||||||||||
| 365 | sep_mv = " + "; | - | ||||||||||||||||||||||||||||||
| 366 | sep_mv_len = 3; | - | ||||||||||||||||||||||||||||||
| 367 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 368 | - | |||||||||||||||||||||||||||||||
| 369 | case never executed: (1 << 16):case (1 << 16):never executed: case (1 << 16): | 0 | ||||||||||||||||||||||||||||||
| 370 | sep_dn = ","; | - | ||||||||||||||||||||||||||||||
| 371 | sep_dn_len = 1; | - | ||||||||||||||||||||||||||||||
| 372 | sep_mv = "+"; | - | ||||||||||||||||||||||||||||||
| 373 | sep_mv_len = 1; | - | ||||||||||||||||||||||||||||||
| 374 | indent = 0; | - | ||||||||||||||||||||||||||||||
| 375 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 376 | - | |||||||||||||||||||||||||||||||
| 377 | case never executed: (2 << 16):case (2 << 16):never executed: case (2 << 16): | 0 | ||||||||||||||||||||||||||||||
| 378 | sep_dn = ", "; | - | ||||||||||||||||||||||||||||||
| 379 | sep_dn_len = 2; | - | ||||||||||||||||||||||||||||||
| 380 | sep_mv = " + "; | - | ||||||||||||||||||||||||||||||
| 381 | sep_mv_len = 3; | - | ||||||||||||||||||||||||||||||
| 382 | indent = 0; | - | ||||||||||||||||||||||||||||||
| 383 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 384 | - | |||||||||||||||||||||||||||||||
| 385 | case never executed: (3 << 16):case (3 << 16):never executed: case (3 << 16): | 0 | ||||||||||||||||||||||||||||||
| 386 | sep_dn = "; "; | - | ||||||||||||||||||||||||||||||
| 387 | sep_dn_len = 2; | - | ||||||||||||||||||||||||||||||
| 388 | sep_mv = " + "; | - | ||||||||||||||||||||||||||||||
| 389 | sep_mv_len = 3; | - | ||||||||||||||||||||||||||||||
| 390 | indent = 0; | - | ||||||||||||||||||||||||||||||
| 391 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
| 392 | - | |||||||||||||||||||||||||||||||
| 393 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||||||||
| 394 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 395 | } | - | ||||||||||||||||||||||||||||||
| 396 | - | |||||||||||||||||||||||||||||||
| 397 | if (flags & (1 << 23)
| 0 | ||||||||||||||||||||||||||||||
| 398 | sep_eq = " = "; | - | ||||||||||||||||||||||||||||||
| 399 | sep_eq_len = 3; | - | ||||||||||||||||||||||||||||||
| 400 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
| 401 | sep_eq = "="; | - | ||||||||||||||||||||||||||||||
| 402 | sep_eq_len = 1; | - | ||||||||||||||||||||||||||||||
| 403 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 404 | - | |||||||||||||||||||||||||||||||
| 405 | fn_opt = flags & (0x3 << 21); | - | ||||||||||||||||||||||||||||||
| 406 | - | |||||||||||||||||||||||||||||||
| 407 | cnt = X509_NAME_entry_count(n); | - | ||||||||||||||||||||||||||||||
| 408 | for (i = 0; i < cnt
| 0 | ||||||||||||||||||||||||||||||
| 409 | if (flags & (1 << 20)
| 0 | ||||||||||||||||||||||||||||||
| 410 | ent = X509_NAME_get_entry(n, cnt - i - 1); never executed: ent = X509_NAME_get_entry(n, cnt - i - 1); | 0 | ||||||||||||||||||||||||||||||
| 411 | else | - | ||||||||||||||||||||||||||||||
| 412 | ent = X509_NAME_get_entry(n, i); never executed: ent = X509_NAME_get_entry(n, i); | 0 | ||||||||||||||||||||||||||||||
| 413 | if (prev != -1
| 0 | ||||||||||||||||||||||||||||||
| 414 | if (prev == ent->set
| 0 | ||||||||||||||||||||||||||||||
| 415 | if (!io_ch(arg, sep_mv, sep_mv_len)
| 0 | ||||||||||||||||||||||||||||||
| 416 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 417 | outlen += sep_mv_len; | - | ||||||||||||||||||||||||||||||
| 418 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
| 419 | if (!io_ch(arg, sep_dn, sep_dn_len)
| 0 | ||||||||||||||||||||||||||||||
| 420 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 421 | outlen += sep_dn_len; | - | ||||||||||||||||||||||||||||||
| 422 | if (!do_indent(io_ch, arg, indent)
| 0 | ||||||||||||||||||||||||||||||
| 423 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 424 | outlen += indent; | - | ||||||||||||||||||||||||||||||
| 425 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 426 | } | - | ||||||||||||||||||||||||||||||
| 427 | prev = ent->set; | - | ||||||||||||||||||||||||||||||
| 428 | fn = X509_NAME_ENTRY_get_object(ent); | - | ||||||||||||||||||||||||||||||
| 429 | val = X509_NAME_ENTRY_get_data(ent); | - | ||||||||||||||||||||||||||||||
| 430 | fn_nid = OBJ_obj2nid(fn); | - | ||||||||||||||||||||||||||||||
| 431 | if (fn_opt != (3 << 21)
| 0 | ||||||||||||||||||||||||||||||
| 432 | int objlen, fld_len; | - | ||||||||||||||||||||||||||||||
| 433 | if ((
| 0 | ||||||||||||||||||||||||||||||
| 434 | (
| 0 | ||||||||||||||||||||||||||||||
| 435 | OBJ_obj2txt(objtmp, sizeof objtmp, fn, 1); | - | ||||||||||||||||||||||||||||||
| 436 | fld_len = 0; | - | ||||||||||||||||||||||||||||||
| 437 | objbuf = objtmp; | - | ||||||||||||||||||||||||||||||
| 438 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
| 439 | if (fn_opt == 0
| 0 | ||||||||||||||||||||||||||||||
| 440 | fld_len = 10; | - | ||||||||||||||||||||||||||||||
| 441 | objbuf = OBJ_nid2sn(fn_nid); | - | ||||||||||||||||||||||||||||||
| 442 | } never executed: else if (fn_opt == (1 << 21)end of block
| 0 | ||||||||||||||||||||||||||||||
| 443 | fld_len = 25; | - | ||||||||||||||||||||||||||||||
| 444 | objbuf = OBJ_nid2ln(fn_nid); | - | ||||||||||||||||||||||||||||||
| 445 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
| 446 | fld_len = 0; | - | ||||||||||||||||||||||||||||||
| 447 | objbuf = ""; | - | ||||||||||||||||||||||||||||||
| 448 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 449 | } | - | ||||||||||||||||||||||||||||||
| 450 | objlen = strlen(objbuf); | - | ||||||||||||||||||||||||||||||
| 451 | if (!io_ch(arg, objbuf, objlen)
| 0 | ||||||||||||||||||||||||||||||
| 452 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 453 | if ((
| 0 | ||||||||||||||||||||||||||||||
| 454 | if (!do_indent(io_ch, arg, fld_len - objlen)
| 0 | ||||||||||||||||||||||||||||||
| 455 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 456 | outlen += fld_len - objlen; | - | ||||||||||||||||||||||||||||||
| 457 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 458 | if (!io_ch(arg, sep_eq, sep_eq_len)
| 0 | ||||||||||||||||||||||||||||||
| 459 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 460 | outlen += objlen + sep_eq_len; | - | ||||||||||||||||||||||||||||||
| 461 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 462 | - | |||||||||||||||||||||||||||||||
| 463 | - | |||||||||||||||||||||||||||||||
| 464 | - | |||||||||||||||||||||||||||||||
| 465 | - | |||||||||||||||||||||||||||||||
| 466 | if ((
| 0 | ||||||||||||||||||||||||||||||
| 467 | (
| 0 | ||||||||||||||||||||||||||||||
| 468 | orflags = 0x80; never executed: orflags = 0x80; | 0 | ||||||||||||||||||||||||||||||
| 469 | else | - | ||||||||||||||||||||||||||||||
| 470 | orflags = 0; never executed: orflags = 0; | 0 | ||||||||||||||||||||||||||||||
| 471 | - | |||||||||||||||||||||||||||||||
| 472 | len = do_print_ex(io_ch, arg, flags | orflags, val); | - | ||||||||||||||||||||||||||||||
| 473 | if (len < 0
| 0 | ||||||||||||||||||||||||||||||
| 474 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 475 | outlen += len; | - | ||||||||||||||||||||||||||||||
| 476 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
| 477 | return never executed: outlen;return outlen;never executed: return outlen; | 0 | ||||||||||||||||||||||||||||||
| 478 | } | - | ||||||||||||||||||||||||||||||
| 479 | - | |||||||||||||||||||||||||||||||
| 480 | - | |||||||||||||||||||||||||||||||
| 481 | - | |||||||||||||||||||||||||||||||
| 482 | int | - | ||||||||||||||||||||||||||||||
| 483 | X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, | - | ||||||||||||||||||||||||||||||
| 484 | unsigned long flags) | - | ||||||||||||||||||||||||||||||
| 485 | { | - | ||||||||||||||||||||||||||||||
| 486 | if (flags == 0
| 0-6 | ||||||||||||||||||||||||||||||
| 487 | return executed 6 times by 1 test: X509_NAME_print(out, nm, indent);return X509_NAME_print(out, nm, indent);Executed by:
executed 6 times by 1 test: return X509_NAME_print(out, nm, indent);Executed by:
| 6 | ||||||||||||||||||||||||||||||
| 488 | return never executed: do_name_ex(send_bio_chars, out, nm, indent, flags);return do_name_ex(send_bio_chars, out, nm, indent, flags);never executed: return do_name_ex(send_bio_chars, out, nm, indent, flags); | 0 | ||||||||||||||||||||||||||||||
| 489 | } | - | ||||||||||||||||||||||||||||||
| 490 | - | |||||||||||||||||||||||||||||||
| 491 | int | - | ||||||||||||||||||||||||||||||
| 492 | X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, | - | ||||||||||||||||||||||||||||||
| 493 | unsigned long flags) | - | ||||||||||||||||||||||||||||||
| 494 | { | - | ||||||||||||||||||||||||||||||
| 495 | if (flags == 0
| 0 | ||||||||||||||||||||||||||||||
| 496 | BIO *btmp; | - | ||||||||||||||||||||||||||||||
| 497 | int ret; | - | ||||||||||||||||||||||||||||||
| 498 | btmp = BIO_new_fp(fp, 0x00); | - | ||||||||||||||||||||||||||||||
| 499 | if (!btmp
| 0 | ||||||||||||||||||||||||||||||
| 500 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 501 | ret = X509_NAME_print(btmp, nm, indent); | - | ||||||||||||||||||||||||||||||
| 502 | BIO_free(btmp); | - | ||||||||||||||||||||||||||||||
| 503 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||||||||||||||
| 504 | } | - | ||||||||||||||||||||||||||||||
| 505 | return never executed: do_name_ex(send_fp_chars, fp, nm, indent, flags);return do_name_ex(send_fp_chars, fp, nm, indent, flags);never executed: return do_name_ex(send_fp_chars, fp, nm, indent, flags); | 0 | ||||||||||||||||||||||||||||||
| 506 | } | - | ||||||||||||||||||||||||||||||
| 507 | - | |||||||||||||||||||||||||||||||
| 508 | int | - | ||||||||||||||||||||||||||||||
| 509 | ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags) | - | ||||||||||||||||||||||||||||||
| 510 | { | - | ||||||||||||||||||||||||||||||
| 511 | return never executed: do_print_ex(send_bio_chars, out, flags, str);return do_print_ex(send_bio_chars, out, flags, str);never executed: return do_print_ex(send_bio_chars, out, flags, str); | 0 | ||||||||||||||||||||||||||||||
| 512 | } | - | ||||||||||||||||||||||||||||||
| 513 | - | |||||||||||||||||||||||||||||||
| 514 | int | - | ||||||||||||||||||||||||||||||
| 515 | ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags) | - | ||||||||||||||||||||||||||||||
| 516 | { | - | ||||||||||||||||||||||||||||||
| 517 | return never executed: do_print_ex(send_fp_chars, fp, flags, str);return do_print_ex(send_fp_chars, fp, flags, str);never executed: return do_print_ex(send_fp_chars, fp, flags, str); | 0 | ||||||||||||||||||||||||||||||
| 518 | } | - | ||||||||||||||||||||||||||||||
| 519 | - | |||||||||||||||||||||||||||||||
| 520 | - | |||||||||||||||||||||||||||||||
| 521 | - | |||||||||||||||||||||||||||||||
| 522 | - | |||||||||||||||||||||||||||||||
| 523 | - | |||||||||||||||||||||||||||||||
| 524 | int | - | ||||||||||||||||||||||||||||||
| 525 | ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in) | - | ||||||||||||||||||||||||||||||
| 526 | { | - | ||||||||||||||||||||||||||||||
| 527 | ASN1_STRING stmp, *str = &stmp; | - | ||||||||||||||||||||||||||||||
| 528 | int mbflag, type, ret; | - | ||||||||||||||||||||||||||||||
| 529 | - | |||||||||||||||||||||||||||||||
| 530 | if (!in
| 0-1838 | ||||||||||||||||||||||||||||||
| 531 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 532 | type = in->type; | - | ||||||||||||||||||||||||||||||
| 533 | if ((
| 0-1838 | ||||||||||||||||||||||||||||||
| 534 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 535 | mbflag = tag2nbyte[type]; | - | ||||||||||||||||||||||||||||||
| 536 | if (mbflag == -1
| 0-1838 | ||||||||||||||||||||||||||||||
| 537 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
| 538 | mbflag |= 0x1000; | - | ||||||||||||||||||||||||||||||
| 539 | stmp.data = | - | ||||||||||||||||||||||||||||||
| 540 | ((void *)0) | - | ||||||||||||||||||||||||||||||
| 541 | ; | - | ||||||||||||||||||||||||||||||
| 542 | stmp.length = 0; | - | ||||||||||||||||||||||||||||||
| 543 | ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, | - | ||||||||||||||||||||||||||||||
| 544 | 0x2000); | - | ||||||||||||||||||||||||||||||
| 545 | if (ret < 0
| 0-1838 | ||||||||||||||||||||||||||||||
| 546 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||||||||||||||
| 547 | *out = stmp.data; | - | ||||||||||||||||||||||||||||||
| 548 | return executed 1838 times by 8 tests: stmp.length;return stmp.length;Executed by:
executed 1838 times by 8 tests: return stmp.length;Executed by:
| 1838 | ||||||||||||||||||||||||||||||
| 549 | } | - | ||||||||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |