OpenCoverage

uuencode.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/uuencode.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: uuencode.c,v 1.28 2015/04/24 01:36:24 deraadt Exp $ */-
2/*-
3 * Copyright (c) 2000 Markus Friedl. All rights reserved.-
4 *-
5 * Redistribution and use in source and binary forms, with or without-
6 * modification, are permitted provided that the following conditions-
7 * are met:-
8 * 1. Redistributions of source code must retain the above copyright-
9 * notice, this list of conditions and the following disclaimer.-
10 * 2. Redistributions in binary form must reproduce the above copyright-
11 * notice, this list of conditions and the following disclaimer in the-
12 * documentation and/or other materials provided with the distribution.-
13 *-
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR-
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES-
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.-
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,-
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT-
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,-
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY-
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF-
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.-
24 */-
25-
26#include "includes.h"-
27-
28#include <sys/types.h>-
29#include <netinet/in.h>-
30#include <resolv.h>-
31#include <stdio.h>-
32#include <stdlib.h>-
33-
34#include "xmalloc.h"-
35#include "uuencode.h"-
36-
37/*-
38 * Encode binary 'src' of length 'srclength', writing base64-encoded text-
39 * to 'target' of size 'targsize'. Will always nul-terminate 'target'.-
40 * Returns the number of bytes stored in 'target' or -1 on error (inc.-
41 * 'targsize' too small).-
42 */-
43int-
44uuencode(const u_char *src, u_int srclength,-
45 char *target, size_t targsize)-
46{-
47 return __b64_ntop(src, srclength, target, targsize);
executed 1 time by 1 test: return __b64_ntop (src,srclength,target,targsize);
Executed by:
  • ssh-keygen
1
48}-
49-
50/*-
51 * Decode base64-encoded 'src' into buffer 'target' of 'targsize' bytes.-
52 * Will skip leading and trailing whitespace. Returns the number of bytes-
53 * stored in 'target' or -1 on error (inc. targsize too small).-
54 */-
55int-
56uudecode(const char *src, u_char *target, size_t targsize)-
57{-
58 int len;-
59 char *encoded, *p;-
60-
61 /* copy the 'readonly' source */-
62 encoded = xstrdup(src);-
63 /* skip whitespace and data */-
64 for (p = encoded; *p == ' ' || *p == '\t'; p++)
*p == ' 'Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • ssh-keygen
*p == '\t'Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • ssh-keygen
0-6
65 ;
never executed: ;
0
66 for (; *p != '\0' && *p != ' ' && *p != '\t'; p++)
*p != '\0'Description
TRUEevaluated 3704 times by 1 test
Evaluated by:
  • ssh-keygen
FALSEevaluated 6 times by 1 test
Evaluated by:
  • ssh-keygen
*p != ' 'Description
TRUEevaluated 3704 times by 1 test
Evaluated by:
  • ssh-keygen
FALSEnever evaluated
*p != '\t'Description
TRUEevaluated 3704 times by 1 test
Evaluated by:
  • ssh-keygen
FALSEnever evaluated
0-3704
67 ;
executed 3704 times by 1 test: ;
Executed by:
  • ssh-keygen
3704
68 /* and remove trailing whitespace because __b64_pton needs this */-
69 *p = '\0';-
70 len = __b64_pton(encoded, target, targsize);-
71 free(encoded);-
72 return len;
executed 6 times by 1 test: return len;
Executed by:
  • ssh-keygen
6
73}-
74-
75void-
76dump_base64(FILE *fp, const u_char *data, u_int len)-
77{-
78 char *buf;-
79 int i, n;-
80-
81 if (len > 65536) {
len > 65536Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • ssh-keygen
0-1
82 fprintf(fp, "dump_base64: len > 65536\n");-
83 return;
never executed: return;
0
84 }-
85 buf = xreallocarray(NULL, 2, len);-
86 n = uuencode(data, len, buf, 2*len);-
87 for (i = 0; i < n; i++) {
i < nDescription
TRUEevaluated 204 times by 1 test
Evaluated by:
  • ssh-keygen
FALSEevaluated 1 time by 1 test
Evaluated by:
  • ssh-keygen
1-204
88 fprintf(fp, "%c", buf[i]);-
89 if (i % 70 == 69)
i % 70 == 69Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • ssh-keygen
FALSEevaluated 202 times by 1 test
Evaluated by:
  • ssh-keygen
2-202
90 fprintf(fp, "\n");
executed 2 times by 1 test: fprintf(fp, "\n");
Executed by:
  • ssh-keygen
2
91 }
executed 204 times by 1 test: end of block
Executed by:
  • ssh-keygen
204
92 if (i % 70 != 69)
i % 70 != 69Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • ssh-keygen
FALSEnever evaluated
0-1
93 fprintf(fp, "\n");
executed 1 time by 1 test: fprintf(fp, "\n");
Executed by:
  • ssh-keygen
1
94 free(buf);-
95}
executed 1 time by 1 test: end of block
Executed by:
  • ssh-keygen
1
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2