public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
2f2e6f1e826a85721e4885b05d58dae59f987419 blob 1870 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
/* SPDX-License-Identifier: GPL-2.0-or-later
 * Copyright Red Hat
 * Author: David Gibson <david@gibson.dropbear.id.au>
 *
 * Definitions used by both passt/pasta and other tools
 */

#ifndef COMMON_H
#define COMMON_H

#include <string.h>

#define VERSION_BLOB							       \
	VERSION "\n"							       \
	"Copyright Red Hat\n"						       \
	"GNU General Public License, version 2 or later\n"		       \
	"  <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>\n"	       \
	"This is free software: you are free to change and redistribute it.\n" \
	"There is NO WARRANTY, to the extent permitted by law.\n\n"

/* FPRINTF() intentionally silences cert-err33-c clang-tidy warnings */
#define FPRINTF(f, ...)	(void)fprintf(f, __VA_ARGS__)

/*
 * Starting from glibc 2.40.9000 and commit 25a5eb4010df ("string: strerror,
 * strsignal cannot use buffer after dlmopen (bug 32026)"), strerror() needs
 * getrandom(2) and brk(2) as it allocates memory for the locale-translated
 * error description, but our seccomp profiles forbid both.
 *
 * Use the strerror_() wrapper instead, calling into strerrordesc_np() to get
 * a static untranslated string. It's a GNU implementation, but also defined by
 * bionic.
 *
 * If strerrordesc_np() is not defined (e.g. musl), call strerror(). C libraries
 * not defining strerrordesc_np() are expected to provide strerror()
 * implementations that are simple enough for us to call.
 */
__attribute__ ((weak)) const char *strerrordesc_np(int errnum);

/**
 * strerror_() - strerror() wrapper calling strerrordesc_np() if available
 * @errnum:	Error code
 *
 * Return: error description string
 */
static inline const char *strerror_(int errnum)
{
	if (strerrordesc_np)
		return strerrordesc_np(errnum);

	return strerror(errnum);
}

#define strerror(x) @ "Don't call strerror() directly, use strerror_() instead"

#endif /* _COMMON_H */
debug log:

solving 2f2e6f1e ...
found 2f2e6f1e in https://archives.passt.top/passt-dev/20260421062516.2601204-11-david@gibson.dropbear.id.au/ ||
	https://archives.passt.top/passt-dev/20260421044217.2500314-10-david@gibson.dropbear.id.au/
found a9c115a5 in https://archives.passt.top/passt-dev/20260421062516.2601204-10-david@gibson.dropbear.id.au/ ||
	https://archives.passt.top/passt-dev/20260421044217.2500314-9-david@gibson.dropbear.id.au/

applying [1/4] https://archives.passt.top/passt-dev/20260421062516.2601204-10-david@gibson.dropbear.id.au/
diff --git a/common.h b/common.h
new file mode 100644
index 00000000..a9c115a5

Checking patch common.h...
Applied patch common.h cleanly.

skipping https://archives.passt.top/passt-dev/20260421044217.2500314-9-david@gibson.dropbear.id.au/ for a9c115a5
index at:
100644 a9c115a5efa11ad103c2db76b21382ceac8e8f6d	common.h

applying [2/4] https://archives.passt.top/passt-dev/20260421062516.2601204-11-david@gibson.dropbear.id.au/
diff --git a/common.h b/common.h
index a9c115a5..2f2e6f1e 100644

Checking patch common.h...
Applied patch common.h cleanly.

skipping https://archives.passt.top/passt-dev/20260421044217.2500314-10-david@gibson.dropbear.id.au/ for 2f2e6f1e
index at:
100644 2f2e6f1e826a85721e4885b05d58dae59f987419	common.h

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).