Bug Summary

File:src/usr.sbin/mopd/mopd/../common/rc.c
Warning:line 126, column 3
Value stored to 'tmps' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name rc.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -pic-is-pie -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/usr.sbin/mopd/mopd/obj -resource-dir /usr/local/lib/clang/13.0.0 -I /usr/src/usr.sbin/mopd/mopd -I /usr/src/usr.sbin/mopd/mopd/.. -I /usr/src/usr.sbin/mopd/mopd/../common -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/usr/src/usr.sbin/mopd/mopd/obj -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c /usr/src/usr.sbin/mopd/mopd/../common/rc.c
1/* $OpenBSD: rc.c,v 1.9 2017/07/29 07:18:03 florian Exp $ */
2
3/*
4 * Copyright (c) 1993-95 Mats O Jansson. 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 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include "os.h"
28#include "common/get.h"
29#include "common/print.h"
30#include "common/mopdef.h"
31
32void
33mopDumpRC(FILE *fd, u_char *pkt, int trans)
34{
35 int i, idx = 0;
36 long tmpl;
37 u_char tmpc, code, control;
38 u_short len, tmps, moplen;
39
40 len = mopGetLength(pkt, trans);
41
42 switch (trans) {
43 case TRANS_80232:
44 idx = 22;
45 moplen = len - 8;
46 break;
47 default:
48 idx = 16;
49 moplen = len;
50 }
51 code = mopGetChar(pkt, &idx);
52
53 switch (code) {
54 case MOP_K_CODE_RID5:
55
56 tmpc = mopGetChar(pkt, &idx);
57 fprintf(fd, "Reserved : %02x\n", tmpc);
58
59 tmps = mopGetShort(pkt, &idx);
60 fprintf(fd, "Receipt Nbr : %04x\n", tmps);
61
62 break;
63 case MOP_K_CODE_BOT6:
64
65 if (moplen == 5) {
66 tmps = mopGetShort(pkt, &idx);
67 fprintf(fd, "Verification : %04x\n", tmps);
68 } else {
69
70 tmpl = mopGetLong(pkt, &idx);
71 fprintf(fd, "Verification : %08lx\n", tmpl);
72
73 tmpc = mopGetChar(pkt, &idx); /* Processor */
74 fprintf(fd, "Processor : %02x ", tmpc);
75 mopPrintBPTY(fd, tmpc); fprintf(fd, "\n");
76
77 control = mopGetChar(pkt, &idx); /* Control */
78 fprintf(fd, "Control : %02x ", control);
79 if ((control & (1<<MOP_K_BOT_CNTL_SERVER0)))
80 fprintf(fd, "Bootserver Requesting system ");
81 else
82 fprintf(fd, "Bootserver System default ");
83 if ((control & (1<<MOP_K_BOT_CNTL_DEVICE1)))
84 fprintf(fd, "Bootdevice Specified device");
85 else
86 fprintf(fd, "Bootdevice System default");
87 fprintf(fd, "\n");
88
89 if ((control & (1<<MOP_K_BOT_CNTL_DEVICE1))) {
90 tmpc = mopGetChar(pkt, &idx);/* Device ID */
91 fprintf(fd, "Device ID : %02x '", tmpc);
92 for (i = 0; i < ((int) tmpc); i++)
93 fprintf(fd, "%c",
94 mopGetChar(pkt, &idx));
95 fprintf(fd, "'\n");
96 }
97
98 tmpc = mopGetChar(pkt, &idx); /* Software ID */
99 fprintf(fd, "Software ID : %02x ", tmpc);
100 if (tmpc == 0)
101 fprintf(fd, "No software id");
102 if (tmpc == 254) {
103 fprintf(fd, "Maintenance system");
104 tmpc = 0;
105 }
106 if (tmpc == 255) {
107 fprintf(fd, "Standard operating system");
108 tmpc = 0;
109 }
110 if (tmpc > 0) {
111 fprintf(fd, "'");
112 for (i = 0; i < ((int) tmpc); i++)
113 fprintf(fd, "%c",
114 mopGetChar(pkt, &idx));
115 fprintf(fd, "'");
116 }
117 fprintf(fd, "'\n");
118
119 }
120 break;
121 case MOP_K_CODE_SID7:
122
123 tmpc = mopGetChar(pkt, &idx); /* Reserved */
124 fprintf(fd, "Reserved : %02x\n", tmpc);
125
126 tmps = mopGetShort(pkt, &idx); /* Receipt # */
Value stored to 'tmps' is never read
127 fprintf(fd, "Receipt Nbr : %04x\n", tmpc);
128
129 mopPrintInfo(fd, pkt, &idx, moplen, code, trans);
130
131 break;
132 case MOP_K_CODE_RQC9:
133
134 tmps = mopGetShort(pkt, &idx);
135 fprintf(fd, "Receipt Nbr : %04x\n", tmps);
136
137 break;
138 case MOP_K_CODE_CNT11:
139
140 tmps = mopGetShort(pkt, &idx);
141 fprintf(fd, "Receipt Nbr : %04x %d\n", tmps, tmps);
142
143 tmps = mopGetShort(pkt, &idx);
144 fprintf(fd, "Last Zeroed : %04x %d\n", tmps, tmps);
145
146 tmpl = mopGetLong(pkt, &idx);
147 fprintf(fd, "Bytes rec : %08lx %ld\n", tmpl, tmpl);
148
149 tmpl = mopGetLong(pkt, &idx);
150 fprintf(fd, "Bytes snd : %08lx %ld\n", tmpl, tmpl);
151
152 tmpl = mopGetLong(pkt, &idx);
153 fprintf(fd, "Frames rec : %08lx %ld\n", tmpl, tmpl);
154
155 tmpl = mopGetLong(pkt, &idx);
156 fprintf(fd, "Frames snd : %08lx %ld\n", tmpl, tmpl);
157
158 tmpl = mopGetLong(pkt, &idx);
159 fprintf(fd, "Mcst Bytes re: %08lx %ld\n", tmpl, tmpl);
160
161 tmpl = mopGetLong(pkt, &idx);
162 fprintf(fd, "Mcst Frame re: %08lx %ld\n", tmpl, tmpl);
163
164 tmpl = mopGetLong(pkt, &idx);
165 fprintf(fd, "Frame snd, def: %08lx %ld\n", tmpl, tmpl);
166
167 tmpl = mopGetLong(pkt, &idx);
168 fprintf(fd, "Frame snd, col: %08lx %ld\n", tmpl, tmpl);
169
170 tmpl = mopGetLong(pkt, &idx);
171 fprintf(fd, "Frame snd, mcl: %08lx %ld\n", tmpl, tmpl);
172
173 tmps = mopGetShort(pkt, &idx);
174 fprintf(fd, "Snd failure : %04x %d\n", tmps, tmps);
175
176 tmps = mopGetShort(pkt, &idx);
177 fprintf(fd, "Snd fail reas: %04x ", tmps);
178 if (tmps & 1)
179 fprintf(fd, "Excess col ");
180 if (tmps & 2)
181 fprintf(fd, "Carrier chk fail ");
182 if (tmps & 4)
183 fprintf(fd, "Short circ ");
184 if (tmps & 8)
185 fprintf(fd, "Open circ ");
186 if (tmps & 16)
187 fprintf(fd, "Frm to long ");
188 if (tmps & 32)
189 fprintf(fd, "Rem fail to defer ");
190 fprintf(fd, "\n");
191
192 tmps = mopGetShort(pkt, &idx);
193 fprintf(fd, "Rec failure : %04x %d\n", tmps, tmps);
194
195 tmps = mopGetShort(pkt, &idx);
196 fprintf(fd, "Rec fail reas: %04x ", tmps);
197 if (tmps & 1)
198 fprintf(fd, "Block chk err ");
199 if (tmps & 2)
200 fprintf(fd, "Framing err ");
201 if (tmps & 4)
202 fprintf(fd, "Frm to long ");
203 fprintf(fd, "\n");
204
205 tmps = mopGetShort(pkt, &idx);
206 fprintf(fd, "Unrec frm dst: %04x %d\n", tmps, tmps);
207
208 tmps = mopGetShort(pkt, &idx);
209 fprintf(fd, "Data overrun : %04x %d\n", tmps, tmps);
210
211 tmps = mopGetShort(pkt, &idx);
212 fprintf(fd, "Sys Buf Unava: %04x %d\n", tmps, tmps);
213
214 tmps = mopGetShort(pkt, &idx);
215 fprintf(fd, "Usr Buf Unava: %04x %d\n", tmps, tmps);
216
217 break;
218 case MOP_K_CODE_RVC13:
219
220 tmpl = mopGetLong(pkt, &idx);
221 fprintf(fd, "Verification : %08lx\n", tmpl);
222
223 break;
224 case MOP_K_CODE_RLC15:
225
226 /* Empty message */
227
228 break;
229 case MOP_K_CODE_CCP17:
230 tmpc = mopGetChar(pkt, &idx);
231 fprintf(fd, "Control Flags: %02x Message %d ", tmpc, tmpc & 1);
232 if (tmpc & 2)
233 fprintf(fd, "Break");
234 fprintf(fd, "\n");
235
236 if (moplen > 2) {
237 for (i = 0; i < (moplen - 2); i++) {
238 if ((i % 16) == 0) {
239 if ((i / 16) == 0)
240 fprintf(fd,
241 "Image Data : %04x ",
242 moplen-2);
243 else
244 fprintf(fd,
245 " ");
246 }
247 fprintf(fd, "%02x ", mopGetChar(pkt, &idx));
248 if ((i % 16) == 15)
249 fprintf(fd, "\n");
250 }
251 if ((i % 16) != 15)
252 fprintf(fd, "\n");
253 }
254
255 break;
256 case MOP_K_CODE_CRA19:
257
258 tmpc = mopGetChar(pkt, &idx);
259 fprintf(fd, "Control Flags: %02x Message %d ", tmpc, tmpc & 1);
260 if (tmpc & 2)
261 fprintf(fd, "Cmd Data Lost ");
262 if (tmpc & 4)
263 fprintf(fd, "Resp Data Lost ");
264 fprintf(fd, "\n");
265
266 if (moplen > 2) {
267 for (i = 0; i < (moplen - 2); i++) {
268 if ((i % 16) == 0) {
269 if ((i / 16) == 0)
270 fprintf(fd,
271 "Image Data : %04x ",
272 moplen-2);
273 else
274 fprintf(fd,
275 " ");
276 }
277 fprintf(fd, "%02x ", mopGetChar(pkt, &idx));
278 if ((i % 16) == 15)
279 fprintf(fd, "\n");
280 }
281 if ((i % 16) != 15)
282 fprintf(fd, "\n");
283 }
284
285 break;
286 default:
287 break;
288 }
289}