From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Sat, 30 Apr 2022 10:58:10 +0000 Subject: [PATCH] ifdef out missing functionality Co-Authored-By: Luke Co-Authored-By: Patrick Meyer Co-Authored-By: Tim Schumacher --- atomicio.c | 2 +- defines.h | 5 +++++ dns.c | 4 ++++ dns.h | 4 ++++ hostfile.c | 2 ++ includes.h | 2 ++ loginrec.c | 8 ++++---- misc.c | 2 ++ openbsd-compat/getrrsetbyname-ldns.c | 4 ++++ openbsd-compat/getrrsetbyname.c | 4 ++++ openbsd-compat/getrrsetbyname.h | 4 ++++ openbsd-compat/mktemp.c | 2 +- readconf.c | 5 ++++- regress/netcat.c | 2 ++ sandbox-pledge.c | 2 ++ servconf.c | 2 ++ ssh-add.c | 4 ++++ ssh-agent.c | 2 ++ ssh-keygen.c | 11 +++++++++++ ssh-keyscan.c | 2 ++ ssh-pkcs11-client.c | 8 +++++++- ssh-sk-client.c | 4 ++++ sshbuf-misc.c | 2 ++ sshconnect.c | 10 ++++++++-- sshkey.c | 4 ++++ 25 files changed, 91 insertions(+), 10 deletions(-) diff --git a/atomicio.c b/atomicio.c index 7650733..7a195f5 100644 --- a/atomicio.c +++ b/atomicio.c @@ -119,7 +119,7 @@ atomiciov6(ssize_t (*f) (int, const struct iovec *, int), int fd, memcpy(iov, _iov, (size_t)iovcnt * sizeof(*_iov)); pfd.fd = fd; -#ifndef BROKEN_READV_COMPARISON +#if !defined(BROKEN_READV_COMPARISON) && !defined(__serenity__) pfd.events = f == readv ? POLLIN : POLLOUT; #else pfd.events = POLLIN|POLLOUT; diff --git a/defines.h b/defines.h index 279e509..5fb970a 100644 --- a/defines.h +++ b/defines.h @@ -55,8 +55,13 @@ enum /* * Definitions for IP type of service (ip_tos) */ +#ifndef __serenity__ #include +#endif #include +#ifdef __serenity__ +#include +#endif #ifndef IPTOS_LOWDELAY # define IPTOS_LOWDELAY 0x10 # define IPTOS_THROUGHPUT 0x08 diff --git a/dns.c b/dns.c index f2310be..f39db58 100644 --- a/dns.c +++ b/dns.c @@ -25,6 +25,8 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef __serenity__ + #include "includes.h" #include @@ -338,3 +340,5 @@ export_dns_rr(const char *hostname, struct sshkey *key, FILE *f, int generic) return success; } + +#endif diff --git a/dns.h b/dns.h index c9b61c4..2b9f153 100644 --- a/dns.h +++ b/dns.h @@ -25,6 +25,8 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef __serenity__ + #ifndef DNS_H #define DNS_H @@ -57,3 +59,5 @@ int verify_host_key_dns(const char *, struct sockaddr *, int export_dns_rr(const char *, struct sshkey *, FILE *, int); #endif /* DNS_H */ + +#endif diff --git a/hostfile.c b/hostfile.c index bd49e3a..34030f1 100644 --- a/hostfile.c +++ b/hostfile.c @@ -44,7 +44,9 @@ #include #include +#ifndef __serenity__ #include +#endif #include #include #include diff --git a/includes.h b/includes.h index 6d17ef6..eef913a 100644 --- a/includes.h +++ b/includes.h @@ -109,7 +109,9 @@ #endif #include +#ifndef __serenity__ #include /* For typedefs */ +#endif #ifdef HAVE_RPC_TYPES_H # include /* For INADDR_LOOPBACK */ #endif diff --git a/loginrec.c b/loginrec.c index 4f21499..574e3a1 100644 --- a/loginrec.c +++ b/loginrec.c @@ -461,7 +461,7 @@ login_write(struct logininfo *li) #ifdef USE_WTMP wtmp_write_entry(li); #endif -#ifdef USE_UTMPX +#ifndef __serenity__ utmpx_write_entry(li); #endif #ifdef USE_WTMPX @@ -494,7 +494,7 @@ login_utmp_only(struct logininfo *li) # ifdef USE_WTMP wtmp_write_entry(li); # endif -# ifdef USE_UTMPX +# ifndef __serenity__ utmpx_write_entry(li); # endif # ifdef USE_WTMPX @@ -725,7 +725,7 @@ construct_utmp(struct logininfo *li, ** variations. **/ -#if defined(USE_UTMPX) || defined (USE_WTMPX) +#if !defined(__serenity__) /* build the utmpx structure */ void set_utmpx_time(struct logininfo *li, struct utmpx *utx) @@ -987,7 +987,7 @@ utmp_write_entry(struct logininfo *li) **/ /* not much point if we don't want utmpx entries */ -#ifdef USE_UTMPX +#ifndef __serenity__ /* if we have the wherewithall, use pututxline etc. */ # if !defined(DISABLE_PUTUTXLINE) && defined(HAVE_SETUTXENT) && \ diff --git a/misc.c b/misc.c index 85d2236..bc06094 100644 --- a/misc.c +++ b/misc.c @@ -44,7 +44,9 @@ #include #include +#ifndef __serenity__ #include +#endif #include #include #include diff --git a/openbsd-compat/getrrsetbyname-ldns.c b/openbsd-compat/getrrsetbyname-ldns.c index 4647b62..d684f6f 100644 --- a/openbsd-compat/getrrsetbyname-ldns.c +++ b/openbsd-compat/getrrsetbyname-ldns.c @@ -43,6 +43,8 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#ifndef __serenity__ + #include "includes.h" #if !defined (HAVE_GETRRSETBYNAME) && defined (HAVE_LDNS) @@ -282,3 +284,5 @@ freerrset(struct rrsetinfo *rrset) #endif /* !defined (HAVE_GETRRSETBYNAME) && defined (HAVE_LDNS) */ + +#endif diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c index cc1f8ae..57999ed 100644 --- a/openbsd-compat/getrrsetbyname.c +++ b/openbsd-compat/getrrsetbyname.c @@ -45,6 +45,8 @@ /* OPENBSD ORIGINAL: lib/libc/net/getrrsetbyname.c */ +#ifndef __serenity__ + #include "includes.h" #if !defined (HAVE_GETRRSETBYNAME) && !defined (HAVE_LDNS) @@ -607,3 +609,5 @@ count_dns_rr(struct dns_rr *p, u_int16_t class, u_int16_t type) } #endif /* !defined (HAVE_GETRRSETBYNAME) && !defined (HAVE_LDNS) */ + +#endif diff --git a/openbsd-compat/getrrsetbyname.h b/openbsd-compat/getrrsetbyname.h index 1283f55..0b33705 100644 --- a/openbsd-compat/getrrsetbyname.h +++ b/openbsd-compat/getrrsetbyname.h @@ -45,6 +45,8 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#ifndef __serenity__ + #ifndef _GETRRSETBYNAME_H #define _GETRRSETBYNAME_H @@ -108,3 +110,5 @@ void freerrset(struct rrsetinfo *); #endif /* !defined(HAVE_GETRRSETBYNAME) */ #endif /* _GETRRSETBYNAME_H */ + +#endif diff --git a/openbsd-compat/mktemp.c b/openbsd-compat/mktemp.c index ac922c1..1ebb975 100644 --- a/openbsd-compat/mktemp.c +++ b/openbsd-compat/mktemp.c @@ -34,7 +34,7 @@ #include #include -#if !defined(HAVE_MKDTEMP) +#if !defined(HAVE_MKDTEMP) || !defined(__serenity__) #define MKTEMP_NAME 0 #define MKTEMP_FILE 1 diff --git a/readconf.c b/readconf.c index f26faba..56122d8 100644 --- a/readconf.c +++ b/readconf.c @@ -21,7 +21,9 @@ #include #include +#ifndef __serenity__ #include +#endif #include #include @@ -1134,11 +1136,12 @@ parse_time: case oCheckHostIP: intptr = &options->check_host_ip; goto parse_flag; - +#ifndef __serenity__ case oVerifyHostKeyDNS: intptr = &options->verify_host_key_dns; multistate_ptr = multistate_yesnoask; goto parse_multistate; + #endif case oStrictHostKeyChecking: intptr = &options->strict_host_key_checking; diff --git a/regress/netcat.c b/regress/netcat.c index 20ec3f5..55e087e 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1384,7 +1384,9 @@ usage(int ret) #include #include #include +#ifndef __serenity__ #include +#endif #define SOCKS_PORT "1080" #define HTTP_PROXY_PORT "3128" diff --git a/sandbox-pledge.c b/sandbox-pledge.c index 302f1cf..693a443 100644 --- a/sandbox-pledge.c +++ b/sandbox-pledge.c @@ -21,7 +21,9 @@ #include #include +#ifndef __serenity__ #include +#endif #include #include diff --git a/servconf.c b/servconf.c index 9d9681f..c418509 100644 --- a/servconf.c +++ b/servconf.c @@ -21,7 +21,9 @@ #endif #include +#ifndef __serenity__ #include +#endif #include #ifdef HAVE_NET_ROUTE_H #include diff --git a/ssh-add.c b/ssh-add.c index 7555477..ea8e27c 100644 --- a/ssh-add.c +++ b/ssh-add.c @@ -577,6 +577,7 @@ lock_agent(int agent_fd, int lock) return (ret); } +#ifndef __serenity__ static int load_resident_keys(int agent_fd, const char *skprovider, int qflag, struct dest_constraint **dest_constraints, size_t ndest_constraints) @@ -628,6 +629,7 @@ load_resident_keys(int agent_fd, const char *skprovider, int qflag, return SSH_ERR_KEY_NOT_FOUND; return ok == 1 ? 0 : ok; } +#endif static int do_file(int agent_fd, int deleting, int key_only, char *file, int qflag, @@ -964,6 +966,7 @@ main(int argc, char **argv) ret = 1; goto done; } + #ifndef __serenity__ if (do_download) { if (skprovider == NULL) fatal("Cannot download keys without provider"); @@ -972,6 +975,7 @@ main(int argc, char **argv) ret = 1; goto done; } + #endif if (argc == 0) { char buf[PATH_MAX]; struct passwd *pw; diff --git a/ssh-agent.c b/ssh-agent.c index 03ae2b0..c1b6350 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -2146,10 +2146,12 @@ main(int ac, char **av) * a few spare for libc / stack protectors / sanitisers, etc. */ #define SSH_AGENT_MIN_FDS (3+1+1+1+4) +#ifndef __serenity__ if (rlim.rlim_cur < SSH_AGENT_MIN_FDS) fatal("%s: file descriptor rlimit %lld too low (minimum %u)", __progname, (long long)rlim.rlim_cur, SSH_AGENT_MIN_FDS); maxfds = rlim.rlim_cur - SSH_AGENT_MIN_FDS; +#endif parent_pid = getpid(); diff --git a/ssh-keygen.c b/ssh-keygen.c index d62fab3..1443c9c 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1471,6 +1471,7 @@ do_change_passphrase(struct passwd *pw) exit(0); } +#ifndef __serenity__ /* * Print the SSHFP RR. */ @@ -1497,6 +1498,7 @@ do_print_resource_record(struct passwd *pw, char *fname, char *hname, free(comment); return 1; } +#endif /* * Change the comment of a private key file. @@ -3075,6 +3077,7 @@ sk_suffix(const char *application, const uint8_t *user, size_t userlen) return ret; } +#ifndef __serenity__ static int do_download_sk(const char *skprovider, const char *device) { @@ -3185,6 +3188,7 @@ save_attestation(struct sshbuf *attest, const char *path) printf("Your FIDO attestation certificate has been saved in " "%s\n", path); } +#endif static void usage(void) @@ -3627,6 +3631,7 @@ main(int argc, char **argv) } if (pkcs11provider != NULL) do_download(pw); +#ifndef __serenity__ if (download_sk) { for (i = 0; i < nopts; i++) { if (strncasecmp(opts[i], "device=", 7) == 0) { @@ -3638,6 +3643,7 @@ main(int argc, char **argv) } return do_download_sk(sk_provider, sk_device); } +#endif if (print_fingerprint || print_bubblebabble) do_fingerprint(pw); if (change_passphrase) @@ -3655,6 +3661,8 @@ main(int argc, char **argv) #endif /* WITH_OPENSSL */ if (print_public) do_print_public(pw); + +#ifndef __serenity__ if (rr_hostname != NULL) { unsigned int n = 0; @@ -3686,6 +3694,7 @@ main(int argc, char **argv) exit(0); } } +#endif if (do_gen_candidates || do_screen_candidates) { if (argc <= 0) @@ -3717,6 +3726,7 @@ main(int argc, char **argv) printf("Generating public/private %s key pair.\n", key_type_name); switch (type) { +#ifndef __serenity__ case KEY_ECDSA_SK: case KEY_ED25519_SK: for (i = 0; i < nopts; i++) { @@ -3795,6 +3805,7 @@ main(int argc, char **argv) passphrase = NULL; } break; +#endif default: if ((r = sshkey_generate(type, bits, &private)) != 0) fatal("sshkey_generate failed"); diff --git a/ssh-keyscan.c b/ssh-keyscan.c index d29a03b..e6aac3d 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -313,7 +313,9 @@ keyprint_one(const char *host, struct sshkey *key) found_one = 1; if (print_sshfp) { +#ifndef __serenity__ export_dns_rr(host, key, stdout, 0); +#endif return; } diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c index cfd833d..de8fb90 100644 --- a/ssh-pkcs11-client.c +++ b/ssh-pkcs11-client.c @@ -241,6 +241,7 @@ wrap_key(struct sshkey *k) fatal_f("unknown key type"); } +#ifndef __serenity__ static int pkcs11_start_helper_methods(void) { @@ -310,6 +311,7 @@ pkcs11_start_helper(void) fd = pair[0]; return (0); } +#endif int pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp, @@ -323,7 +325,11 @@ pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp, u_int nkeys, i; struct sshbuf *msg; - if (fd < 0 && pkcs11_start_helper() < 0) + if (fd < 0 +#ifndef __serenity__ + && pkcs11_start_helper() < 0 +#endif + ) return (-1); if ((msg = sshbuf_new()) == NULL) diff --git a/ssh-sk-client.c b/ssh-sk-client.c index 321fe53..984aa6a 100644 --- a/ssh-sk-client.c +++ b/ssh-sk-client.c @@ -15,6 +15,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#ifndef __serenity__ + #include "includes.h" #include @@ -478,3 +480,5 @@ sshsk_load_resident(const char *provider_path, const char *device, errno = oerrno; return r; } + +#endif diff --git a/sshbuf-misc.c b/sshbuf-misc.c index 9c5c42b..1759ed2 100644 --- a/sshbuf-misc.c +++ b/sshbuf-misc.c @@ -28,7 +28,9 @@ #include #include #include +#ifndef __serenity__ #include +#endif #include #include diff --git a/sshconnect.c b/sshconnect.c index ebecc83..81df612 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -106,6 +106,7 @@ expand_proxy_command(const char *proxy_command, const char *user, return ret; } +#ifndef __serenity__ /* * Connect to the given ssh server using a proxy command that passes a * a connected fd back to us. @@ -188,6 +189,7 @@ ssh_proxy_fdpass_connect(struct ssh *ssh, const char *host, return 0; } +#endif /* * Connect to the given ssh server using a proxy command. @@ -555,10 +557,13 @@ ssh_connect(struct ssh *ssh, const char *host, const char *host_arg, if ((ssh_packet_set_connection(ssh, in, out)) == NULL) return -1; /* ssh_packet_set_connection logs error */ return 0; - } else if (options.proxy_use_fdpass) { + } + #ifndef __serenity__ + else if (options.proxy_use_fdpass) { return ssh_proxy_fdpass_connect(ssh, host, host_arg, port, options.proxy_command); } + #endif return ssh_proxy_connect(ssh, host, host_arg, port, options.proxy_command); } @@ -1483,7 +1488,7 @@ verify_host_key(char *host, struct sockaddr *hostaddr, struct sshkey *host_key, goto out; } } - +#ifndef __serenity__ if (options.verify_host_key_dns) { /* * XXX certs are not yet supported for DNS, so downgrade @@ -1512,6 +1517,7 @@ verify_host_key(char *host, struct sockaddr *hostaddr, struct sshkey *host_key, } } } +#endif r = check_host_key(host, cinfo, hostaddr, options.port, host_key, RDRW, 0, options.user_hostfiles, options.num_user_hostfiles, options.system_hostfiles, options.num_system_hostfiles, diff --git a/sshkey.c b/sshkey.c index f1e9200..564ff40 100644 --- a/sshkey.c +++ b/sshkey.c @@ -42,7 +42,9 @@ #include #include #include +#ifndef __serenity__ #include +#endif #include #ifdef HAVE_UTIL_H #include @@ -2790,6 +2792,7 @@ sshkey_sign(struct sshkey *key, case KEY_ED25519_CERT: r = ssh_ed25519_sign(key, sigp, lenp, data, datalen, compat); break; +#ifndef __serenity__ case KEY_ED25519_SK: case KEY_ED25519_SK_CERT: case KEY_ECDSA_SK_CERT: @@ -2797,6 +2800,7 @@ sshkey_sign(struct sshkey *key, r = sshsk_sign(sk_provider, key, sigp, lenp, data, datalen, compat, sk_pin); break; +#endif #ifdef WITH_XMSS case KEY_XMSS: case KEY_XMSS_CERT: