Bug Summary

File:src/lib/libc/gen/sysconf.c
Warning:line 244, column 3
Value stored to 'namelen' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.4 -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name sysconf.c -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 -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -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/lib/libc/obj -resource-dir /usr/local/llvm16/lib/clang/16 -include namespace.h -I /usr/src/lib/libc/include -I /usr/src/lib/libc/hidden -D __LIBC__ -D APIWARN -D YP -I /usr/src/lib/libc/yp -I /usr/src/lib/libc -I /usr/src/lib/libc/gdtoa -I /usr/src/lib/libc/arch/amd64/gdtoa -D INFNAN_CHECK -D MULTIPLE_THREADS -D NO_FENV_H -D USE_LOCALE -I /usr/src/lib/libc -I /usr/src/lib/libc/citrus -D RESOLVSORT -D FLOATING_POINT -D PRINTF_WIDE_CHAR -D SCANF_WIDE_CHAR -D FUTEX -internal-isystem /usr/local/llvm16/lib/clang/16/include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/usr/src/lib/libc/obj -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fcf-protection=branch -fno-jump-tables -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/scan/2024-01-11-140451-98009-1 -x c /usr/src/lib/libc/gen/sysconf.c
1/* $OpenBSD: sysconf.c,v 1.28 2022/07/19 09:25:44 claudio Exp $ */
2/*-
3 * Copyright (c) 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * Sean Eric Fagan of Cygnus Support.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the University 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 REGENTS 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 REGENTS 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 <sys/types.h>
35#include <sys/sem.h>
36#include <sys/sysctl.h>
37#include <sys/time.h>
38#include <sys/resource.h>
39#include <sys/socket.h>
40
41#include <errno(*__errno()).h>
42#include <grp.h>
43#include <pthread.h>
44#include <pwd.h>
45#include <stdio.h>
46#include <unistd.h>
47
48/*
49 * sysconf --
50 * get configurable system variables.
51 *
52 * XXX
53 * POSIX 1003.1 (ISO/IEC 9945-1, 4.8.1.3) states that the variable values
54 * not change during the lifetime of the calling process. This would seem
55 * to require that any change to system limits kill all running processes.
56 * A workaround might be to cache the values when they are first retrieved
57 * and then simply return the cached value on subsequent calls. This is
58 * less useful than returning up-to-date values, however.
59 */
60long
61sysconf(int name)
62{
63 struct rlimit rl;
64 size_t len;
65 int mib[3], value, namelen, sverrno;
66
67 len = sizeof(value);
68 namelen = 2;
69
70 switch (name) {
71/* 1003.1 */
72 case _SC_ARG_MAX1:
73 mib[0] = CTL_KERN1;
74 mib[1] = KERN_ARGMAX8;
75 break;
76 case _SC_CHILD_MAX2:
77 if (getrlimit(RLIMIT_NPROC7, &rl) != 0)
78 return (-1);
79 if (rl.rlim_cur == RLIM_INFINITY(((rlim_t)1 << 63) - 1))
80 return (-1);
81 if (rl.rlim_cur > LONG_MAX0x7fffffffffffffffL) {
82 errno(*__errno()) = EOVERFLOW87;
83 return (-1);
84 }
85 return ((long)rl.rlim_cur);
86 case _SC_CLK_TCK3:
87 return (CLK_TCK100);
88 case _SC_JOB_CONTROL6:
89 return (_POSIX_JOB_CONTROL1);
90 case _SC_NGROUPS_MAX4:
91 mib[0] = CTL_KERN1;
92 mib[1] = KERN_NGROUPS18;
93 break;
94 case _SC_OPEN_MAX5:
95 if (getrlimit(RLIMIT_NOFILE8, &rl) != 0)
96 return (-1);
97 if (rl.rlim_cur == RLIM_INFINITY(((rlim_t)1 << 63) - 1))
98 return (-1);
99 if (rl.rlim_cur > LONG_MAX0x7fffffffffffffffL) {
100 errno(*__errno()) = EOVERFLOW87;
101 return (-1);
102 }
103 return ((long)rl.rlim_cur);
104 case _SC_STREAM_MAX26:
105 if (getrlimit(RLIMIT_NOFILE8, &rl) != 0)
106 return (-1);
107 if (rl.rlim_cur == RLIM_INFINITY(((rlim_t)1 << 63) - 1))
108 return (-1);
109 if (rl.rlim_cur > LONG_MAX0x7fffffffffffffffL) {
110 errno(*__errno()) = EOVERFLOW87;
111 return (-1);
112 }
113 /*
114 * struct __sFILE currently has a limitation that
115 * file descriptors must fit in a signed short.
116 * This doesn't precisely capture the letter of POSIX
117 * but approximates the spirit.
118 */
119 if (rl.rlim_cur > SHRT_MAX0x7fff)
120 return (SHRT_MAX0x7fff);
121
122 return ((long)rl.rlim_cur);
123 case _SC_TZNAME_MAX27:
124 return (NAME_MAX255);
125 case _SC_SAVED_IDS7:
126 return (_POSIX_SAVED_IDS1);
127 case _SC_VERSION8:
128 mib[0] = CTL_KERN1;
129 mib[1] = KERN_POSIX117;
130 break;
131
132/* 1003.1b */
133 case _SC_PAGESIZE28:
134 if (_pagesize != 0)
135 return (_pagesize);
136 mib[0] = CTL_HW6;
137 mib[1] = HW_PAGESIZE7;
138 break;
139 case _SC_FSYNC29:
140 return (_POSIX_FSYNC200112L);
141
142/* 1003.1c */
143 case _SC_LOGIN_NAME_MAX102:
144 return (LOGIN_NAME_MAX32);
145
146 case _SC_THREAD_SAFE_FUNCTIONS103:
147 return (_POSIX_THREAD_SAFE_FUNCTIONS200112L);
148
149 case _SC_GETGR_R_SIZE_MAX100:
150 return (_GR_BUF_LEN(1024+200*sizeof(char*)));
151
152 case _SC_GETPW_R_SIZE_MAX101:
153 return (_PW_BUF_LEN1024);
154
155/* 1003.2 */
156 case _SC_BC_BASE_MAX9:
157 return (BC_BASE_MAX0x7fffffff);
158 case _SC_BC_DIM_MAX10:
159 return (BC_DIM_MAX65535);
160 case _SC_BC_SCALE_MAX11:
161 return (BC_SCALE_MAX0x7fffffff);
162 case _SC_BC_STRING_MAX12:
163 return (BC_STRING_MAX0x7fffffff);
164 case _SC_COLL_WEIGHTS_MAX13:
165 return (COLL_WEIGHTS_MAX2);
166 case _SC_EXPR_NEST_MAX14:
167 return (EXPR_NEST_MAX32);
168 case _SC_LINE_MAX15:
169 return (LINE_MAX2048);
170 case _SC_RE_DUP_MAX16:
171 return (RE_DUP_MAX255);
172 case _SC_2_VERSION17:
173 return (_POSIX2_VERSION200809L);
174 case _SC_2_C_BIND18:
175 return (_POSIX2_C_BIND200112L);
176 case _SC_2_C_DEV19:
177 return (_POSIX2_C_DEV(-1));
178 case _SC_2_CHAR_TERM20:
179 return (_POSIX2_CHAR_TERM1);
180 case _SC_2_FORT_DEV21:
181 return (_POSIX2_FORT_DEV(-1));
182 case _SC_2_FORT_RUN22:
183 return (_POSIX2_FORT_RUN(-1));
184 case _SC_2_LOCALEDEF23:
185 return (_POSIX2_LOCALEDEF(-1));
186 case _SC_2_SW_DEV24:
187 return (_POSIX2_SW_DEV200112L);
188 case _SC_2_UPE25:
189 return (_POSIX2_UPE200112L);
190
191/* XPG 4.2 */
192 case _SC_XOPEN_SHM30:
193 mib[0] = CTL_KERN1;
194 mib[1] = KERN_SYSVSHM36;
195 if (sysctl(mib, namelen, &value, &len, NULL((void *)0), 0) == -1)
196 return (-1);
197 if (value == 0)
198 return (-1);
199 return (value);
200 break;
201 case _SC_SEM_NSEMS_MAX31:
202 return (-1);
203 case _SC_SEM_VALUE_MAX32:
204 return (SEM_VALUE_MAX0xffffffffU);
205
206/* Unsorted */
207 case _SC_HOST_NAME_MAX33:
208 return (HOST_NAME_MAX255); /* does not include \0 */
209 case _SC_MONOTONIC_CLOCK34:
210 return (_POSIX_MONOTONIC_CLOCK200112L);
211 case _SC_2_PBS35:
212 case _SC_2_PBS_ACCOUNTING36:
213 case _SC_2_PBS_CHECKPOINT37:
214 case _SC_2_PBS_LOCATE38:
215 case _SC_2_PBS_MESSAGE39:
216 case _SC_2_PBS_TRACK40:
217 return (_POSIX2_PBS(-1));
218 case _SC_ADVISORY_INFO41:
219 return (_POSIX_ADVISORY_INFO(-1));
220 case _SC_AIO_LISTIO_MAX42:
221 case _SC_AIO_MAX43:
222 case _SC_AIO_PRIO_DELTA_MAX44:
223 return (-1);
224 case _SC_ASYNCHRONOUS_IO45:
225 return (_POSIX_ASYNCHRONOUS_IO(-1));
226 case _SC_ATEXIT_MAX46:
227 return (-1);
228 case _SC_BARRIERS47:
229 return (_POSIX_BARRIERS200112L);
230 case _SC_CLOCK_SELECTION48:
231 return (_POSIX_CLOCK_SELECTION(-1));
232 case _SC_CPUTIME49:
233 return (_POSIX_CPUTIME200809L);
234 case _SC_DELAYTIMER_MAX50:
235 return (-1);
236 case _SC_IOV_MAX51:
237 return (IOV_MAX1024);
238 case _SC_IPV652:
239#if _POSIX_IPV60 == 0
240 sverrno = errno(*__errno());
241 mib[0] = CTL_NET4;
242 mib[1] = PF_INET624;
243 mib[2] = 0;
244 namelen = 3;
Value stored to 'namelen' is never read
245 value = 0;
246 if (sysctl(mib, 3, NULL((void *)0), 0, NULL((void *)0), 0) == -1)
247 value = errno(*__errno());
248 errno(*__errno()) = sverrno;
249 if (value != ENOPROTOOPT42)
250 return (200112L);
251 else
252 return (0);
253#else
254 return (_POSIX_IPV60);
255#endif
256 case _SC_MAPPED_FILES53:
257 return (_POSIX_MAPPED_FILES200112L);
258 case _SC_MEMLOCK54:
259 return (_POSIX_MEMLOCK200112L);
260 case _SC_MEMLOCK_RANGE55:
261 return (_POSIX_MEMLOCK_RANGE200112L);
262 case _SC_MEMORY_PROTECTION56:
263 return (_POSIX_MEMORY_PROTECTION200112L);
264 case _SC_MESSAGE_PASSING57:
265 return (_POSIX_MESSAGE_PASSING(-1));
266 case _SC_PRIORITIZED_IO60:
267 return (_POSIX_PRIORITIZED_IO(-1));
268 case _SC_PRIORITY_SCHEDULING61:
269 return (_POSIX_PRIORITY_SCHEDULING(-1));
270 case _SC_RAW_SOCKETS62:
271 return (_POSIX_RAW_SOCKETS200112L);
272 case _SC_READER_WRITER_LOCKS63:
273 return (_POSIX_READER_WRITER_LOCKS200112L);
274 case _SC_REALTIME_SIGNALS64:
275 return (_POSIX_REALTIME_SIGNALS(-1));
276 case _SC_REGEXP65:
277 return (_POSIX_REGEXP1);
278 case _SC_SEMAPHORES67:
279 return (_POSIX_SEMAPHORES200112L);
280 case _SC_SHARED_MEMORY_OBJECTS68:
281 return (_POSIX_SHARED_MEMORY_OBJECTS200809L);
282 case _SC_SHELL69:
283 return (_POSIX_SHELL1);
284 case _SC_SIGQUEUE_MAX70:
285 return (-1);
286 case _SC_SPAWN71:
287 return (_POSIX_SPAWN200112L);
288 case _SC_SPIN_LOCKS72:
289 return (_POSIX_SPIN_LOCKS200112L);
290 case _SC_SPORADIC_SERVER73:
291 return (_POSIX_SPORADIC_SERVER(-1));
292 case _SC_SYNCHRONIZED_IO75:
293 return (_POSIX_SYNCHRONIZED_IO(-1));
294 case _SC_SYMLOOP_MAX76:
295 return (SYMLOOP_MAX32);
296 case _SC_THREAD_ATTR_STACKADDR77:
297 return (_POSIX_THREAD_ATTR_STACKADDR200112L);
298 case _SC_THREAD_ATTR_STACKSIZE78:
299 return (_POSIX_THREAD_ATTR_STACKSIZE200112L);
300 case _SC_THREAD_CPUTIME79:
301 return (_POSIX_THREAD_CPUTIME200809L);
302 case _SC_THREAD_DESTRUCTOR_ITERATIONS80:
303 return (PTHREAD_DESTRUCTOR_ITERATIONS4);
304 case _SC_THREAD_KEYS_MAX81:
305 return (PTHREAD_KEYS_MAX256);
306 case _SC_THREAD_PRIO_INHERIT82:
307 return (_POSIX_THREAD_PRIO_INHERIT(-1));
308 case _SC_THREAD_PRIO_PROTECT83:
309 return (_POSIX_THREAD_PRIO_PROTECT(-1));
310 case _SC_THREAD_PRIORITY_SCHEDULING84:
311 return (_POSIX_THREAD_PRIORITY_SCHEDULING(-1));
312 case _SC_THREAD_PROCESS_SHARED85:
313 return (_POSIX_THREAD_PROCESS_SHARED(-1));
314 case _SC_THREAD_ROBUST_PRIO_INHERIT86:
315 return (_POSIX_THREAD_ROBUST_PRIO_INHERIT(-1));
316 case _SC_THREAD_ROBUST_PRIO_PROTECT87:
317 return (_POSIX_THREAD_ROBUST_PRIO_PROTECT(-1));
318 case _SC_THREAD_SPORADIC_SERVER88:
319 return (_POSIX_THREAD_SPORADIC_SERVER(-1));
320 case _SC_THREAD_STACK_MIN89:
321 return (PTHREAD_STACK_MIN(1U << 12));
322 case _SC_THREAD_THREADS_MAX90:
323 return (PTHREAD_THREADS_MAX0xffffffffffffffffUL);
324 case _SC_THREADS91:
325 return (_POSIX_THREADS200112L);
326 case _SC_TIMEOUTS92:
327 return (_POSIX_TIMEOUTS200112L);
328 case _SC_TIMER_MAX93:
329 return (-1);
330 case _SC_TIMERS94:
331 return (_POSIX_TIMERS(-1));
332 case _SC_TRACE95:
333 case _SC_TRACE_EVENT_FILTER96:
334 case _SC_TRACE_EVENT_NAME_MAX97:
335 case _SC_TRACE_INHERIT98:
336 case _SC_TRACE_LOG99:
337 return (_POSIX_TRACE(-1));
338 case _SC_TTY_NAME_MAX107:
339 return (TTY_NAME_MAX260);
340 case _SC_TYPED_MEMORY_OBJECTS108:
341 return (_POSIX_TYPED_MEMORY_OBJECTS(-1));
342 case _SC_V6_ILP32_OFF32109:
343 return (_POSIX_V6_ILP32_OFF32(-1));
344 case _SC_V6_ILP32_OFFBIG110:
345#if _POSIX_V6_ILP32_OFFBIG0 == 0
346 if (sizeof(int) * CHAR_BIT8 == 32 &&
347 sizeof(long) * CHAR_BIT8 == 32 &&
348 sizeof(void *) * CHAR_BIT8 == 32 &&
349 sizeof(off_t) * CHAR_BIT8 >= 64)
350 return 1;
351 else
352 return -1;
353#else
354 return (_POSIX_V6_ILP32_OFFBIG0);
355#endif
356 case _SC_V6_LP64_OFF64111:
357#if _POSIX_V6_LP64_OFF640 == 0
358 if (sizeof(int) * CHAR_BIT8 == 32 &&
359 sizeof(long) * CHAR_BIT8 == 64 &&
360 sizeof(void *) * CHAR_BIT8 == 64 &&
361 sizeof(off_t) * CHAR_BIT8 == 64)
362 return 1;
363 else
364 return -1;
365#else
366 return (_POSIX_V6_LP64_OFF640);
367#endif
368 case _SC_V6_LPBIG_OFFBIG112:
369#if _POSIX_V6_LPBIG_OFFBIG0 == 0
370 if (sizeof(int) * CHAR_BIT8 >= 32 &&
371 sizeof(long) * CHAR_BIT8 >= 64 &&
372 sizeof(void *) * CHAR_BIT8 >= 64 &&
373 sizeof(off_t) * CHAR_BIT8 >= 64)
374 return 1;
375 else
376 return -1;
377#else
378 return (_POSIX_V6_LPBIG_OFFBIG0);
379#endif
380 case _SC_V7_ILP32_OFF32113:
381 return (_POSIX_V7_ILP32_OFF32(-1));
382 case _SC_V7_ILP32_OFFBIG114:
383#if _POSIX_V7_ILP32_OFFBIG0 == 0
384 if (sizeof(int) * CHAR_BIT8 == 32 &&
385 sizeof(long) * CHAR_BIT8 == 32 &&
386 sizeof(void *) * CHAR_BIT8 == 32 &&
387 sizeof(off_t) * CHAR_BIT8 >= 64)
388 return 1;
389 else
390 return -1;
391#else
392 return (_POSIX_V7_ILP32_OFFBIG0);
393#endif
394 case _SC_V7_LP64_OFF64115:
395#if _POSIX_V7_LP64_OFF640 == 0
396 if (sizeof(int) * CHAR_BIT8 == 32 &&
397 sizeof(long) * CHAR_BIT8 == 64 &&
398 sizeof(void *) * CHAR_BIT8 == 64 &&
399 sizeof(off_t) * CHAR_BIT8 == 64)
400 return 1;
401 else
402 return -1;
403#else
404 return (_POSIX_V7_LP64_OFF640);
405#endif
406 case _SC_V7_LPBIG_OFFBIG116:
407#if _POSIX_V7_LPBIG_OFFBIG0 == 0
408 if (sizeof(int) * CHAR_BIT8 >= 32 &&
409 sizeof(long) * CHAR_BIT8 >= 64 &&
410 sizeof(void *) * CHAR_BIT8 >= 64 &&
411 sizeof(off_t) * CHAR_BIT8 >= 64)
412 return 1;
413 else
414 return -1;
415#else
416 return (_POSIX_V7_LPBIG_OFFBIG0);
417#endif
418 case _SC_XOPEN_CRYPT117:
419 return (_XOPEN_CRYPT1);
420 case _SC_XOPEN_ENH_I18N118:
421 return (_XOPEN_ENH_I18N(-1));
422 case _SC_XOPEN_LEGACY119:
423 return (_XOPEN_LEGACY(-1));
424 case _SC_XOPEN_REALTIME120:
425 return (_XOPEN_REALTIME(-1));
426 case _SC_XOPEN_REALTIME_THREADS121:
427 return (_XOPEN_REALTIME_THREADS(-1));
428 case _SC_XOPEN_STREAMS122:
429 return (_XOPEN_STREAMS(-1));
430 case _SC_XOPEN_UNIX123:
431 return (_XOPEN_UNIX(-1));
432 case _SC_XOPEN_UUCP124:
433 return (_XOPEN_UUCP(-1));
434#ifdef _XOPEN_VERSION
435 case _SC_XOPEN_VERSION125:
436 return (_XOPEN_VERSION);
437#endif
438
439/* Extensions */
440 case _SC_PHYS_PAGES500:
441 {
442 int64_t physmem;
443
444 mib[0] = CTL_HW6;
445 mib[1] = HW_PHYSMEM6419;
446 len = sizeof(physmem);
447 if (sysctl(mib, namelen, &physmem, &len, NULL((void *)0), 0) == -1)
448 return (-1);
449 return (physmem / getpagesize());
450 }
451 case _SC_AVPHYS_PAGES501:
452 {
453 struct uvmexp uvmexp;
454
455 mib[0] = CTL_VM2;
456 mib[1] = VM_UVMEXP4;
457 len = sizeof(uvmexp);
458 if (sysctl(mib, namelen, &uvmexp, &len, NULL((void *)0), 0) == -1)
459 return (-1);
460 return (uvmexp.free);
461 }
462
463 case _SC_NPROCESSORS_CONF502:
464 mib[0] = CTL_HW6;
465 mib[1] = HW_NCPU3;
466 break;
467 case _SC_NPROCESSORS_ONLN503:
468 mib[0] = CTL_HW6;
469 mib[1] = HW_NCPUONLINE25;
470 break;
471
472 default:
473 errno(*__errno()) = EINVAL22;
474 return (-1);
475 }
476 return (sysctl(mib, namelen, &value, &len, NULL((void *)0), 0) == -1 ? -1 : value);
477}
478DEF_WEAK(sysconf)__asm__(".weak " "sysconf" " ; " "sysconf" " = " "_libc_sysconf"
)
;