sync with OpenBSD -current

This commit is contained in:
purplerain 2024-06-07 18:32:47 +00:00
parent 6040ea8924
commit 2d0895064a
Signed by: purplerain
GPG Key ID: F42C07F07E2E35B7
17 changed files with 392 additions and 53 deletions

View File

@ -2631,6 +2631,7 @@
./usr/sbin/cryptoadm
./usr/sbin/cryptoinit
./usr/sbin/dev_mkdb
./usr/sbin/dhcp6leasectl
./usr/sbin/dhcpd
./usr/sbin/dhcpleasectl
./usr/sbin/dhcrelay

View File

@ -2437,6 +2437,7 @@
./usr/share/man/man8/daily.8
./usr/share/man/man8/dev_mkdb.8
./usr/share/man/man8/dhclient.8
./usr/share/man/man8/dhcp6leasectl.8
./usr/share/man/man8/dhcp6leased.8
./usr/share/man/man8/dhcpd.8
./usr/share/man/man8/dhcpleasectl.8

View File

@ -1,4 +1,4 @@
/* $OpenBSD: ssl_tlsext.c,v 1.149 2024/04/16 17:46:30 tb Exp $ */
/* $OpenBSD: ssl_tlsext.c,v 1.150 2024/06/06 16:13:12 tb Exp $ */
/*
* Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
* Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@ -1472,7 +1472,8 @@ tlsext_keyshare_server_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert)
size_t i, j, client_groups_index;
int preferred_group_found = 0;
int decode_error;
uint16_t group, client_preferred_group;
uint16_t client_preferred_group = 0;
uint16_t group;
CBS client_shares, key_exchange;
/*

View File

@ -1,4 +1,4 @@
/* $OpenBSD: dhcp6leased.h,v 1.7 2024/06/05 16:15:47 florian Exp $ */
/* $OpenBSD: dhcp6leased.h,v 1.8 2024/06/06 15:15:44 florian Exp $ */
/*
* Copyright (c) 2017, 2021 Florian Obser <florian@openbsd.org>
@ -175,6 +175,13 @@ enum imsg_type {
IMSG_WRITE_LEASE,
};
struct prefix {
struct in6_addr prefix;
int prefix_len;
uint32_t vltime;
uint32_t pltime;
};
struct ctl_engine_info {
uint32_t if_index;
int running;
@ -184,6 +191,7 @@ struct ctl_engine_info {
uint32_t lease_time;
uint32_t t1;
uint32_t t2;
struct prefix pds[MAX_IA];
};
struct iface_pd_conf {
@ -213,13 +221,6 @@ struct dhcp6leased_conf {
int rapid_commit;
};
struct prefix {
struct in6_addr prefix;
int prefix_len;
uint32_t vltime;
uint32_t pltime;
};
struct imsg_ifinfo {
uint32_t if_index;
int rdomain;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: engine.c,v 1.12 2024/06/05 16:15:47 florian Exp $ */
/* $OpenBSD: engine.c,v 1.13 2024/06/06 15:15:44 florian Exp $ */
/*
* Copyright (c) 2017, 2021, 2024 Florian Obser <florian@openbsd.org>
@ -572,6 +572,7 @@ send_interface_info(struct dhcp6leased_iface *iface, pid_t pid)
cei.lease_time = iface->lease_time;
cei.t1 = iface->t1;
cei.t2 = iface->t2;
memcpy(&cei.pds, &iface->pds, sizeof(cei.pds));
engine_imsg_compose_frontend(IMSG_CTL_SHOW_INTERFACE_INFO, pid, &cei,
sizeof(cei));
}

View File

@ -1,4 +1,4 @@
/* $OpenBSD: parse.y,v 1.8 2024/06/05 16:15:47 florian Exp $ */
/* $OpenBSD: parse.y,v 1.9 2024/06/06 06:26:14 florian Exp $ */
/*
* Copyright (c) 2018, 2024 Florian Obser <florian@openbsd.org>
@ -168,17 +168,17 @@ ia_pd : REQUEST PREFIX DELEGATION ON STRING FOR {
SIMPLEQ_INIT(&iface_ia_conf->iface_pd_list);
SIMPLEQ_INSERT_TAIL(&iface_conf->iface_ia_list,
iface_ia_conf, entry);
} '{' iface_block '}' {
} iface_block {
iface_conf = NULL;
iface_ia_conf = NULL;
}
;
iface_block : optnl ifaceopts_l
| optnl
iface_block : '{' optnl ifaceopts_l '}'
| ifaceoptsl
;
ifaceopts_l : ifaceopts_l ifaceoptsl nl
ifaceopts_l : ifaceopts_l ifaceoptsl optnl
| ifaceoptsl optnl
;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: copy.S,v 1.19 2023/07/28 06:18:35 guenther Exp $ */
/* $OpenBSD: copy.S,v 1.20 2024/06/06 00:36:46 bluhm Exp $ */
/* $NetBSD: copy.S,v 1.1 2003/04/26 18:39:26 fvdl Exp $ */
/*
@ -189,6 +189,7 @@ ENTRY(_copyin)
NENTRY(copy_fault)
DECLARE_ONFAULT(copy_fault)
cld
SMAP_CLAC
movq CPUVAR(CURPCB),%rdx
popq PCB_ONFAULT(%rdx)

View File

@ -1,4 +1,4 @@
/* $OpenBSD: db_disasm.c,v 1.24 2023/04/22 18:26:17 guenther Exp $ */
/* $OpenBSD: db_disasm.c,v 1.25 2024/06/06 12:36:41 bluhm Exp $ */
/* $NetBSD: db_disasm.c,v 1.11 1996/05/03 19:41:58 christos Exp $ */
/*
@ -793,7 +793,7 @@ struct inst db_inst_table[256] = {
/*e6*/ { "out", 0, BYTE, op2(A, Ib), 0 },
/*e7*/ { "out", 0, LONG, op2(A, Ib) , 0 },
/*e8*/ { "call", 0, QUAD, op1(Dl), 0 },
/*e8*/ { "call", 0, NONE, op1(Dl), 0 },
/*e9*/ { "jmp", 0, NONE, op1(Dl), 0 },
/*ea*/ { "", 0, NONE, op1(OS), 0 },
/*eb*/ { "jmp", 0, NONE, op1(Db), 0 },

View File

@ -1,4 +1,4 @@
/* $OpenBSD: locore.s,v 1.204 2023/12/12 07:37:20 deraadt Exp $ */
/* $OpenBSD: locore.s,v 1.205 2024/06/06 00:36:46 bluhm Exp $ */
/* $NetBSD: locore.s,v 1.145 1996/05/03 19:41:19 christos Exp $ */
/*-
@ -555,6 +555,7 @@ ENTRY(_copyin)
ret
ENTRY(copy_fault)
cld
SMAP_CLAC
GET_CURPCB(%edx)
popl PCB_ONFAULT(%edx)

View File

@ -1,15 +1,15 @@
# $OpenBSD: Makefile,v 1.215 2022/06/28 18:47:54 claudio Exp $
# $OpenBSD: Makefile,v 1.216 2024/06/06 15:21:01 florian Exp $
.include <bsd.own.mk>
SUBDIR= ac accton acme-client acpidump adduser amd apm apmd arp authpf \
bgpctl bgpd bgplgd btrace chroot config cron crunchgen dev_mkdb \
dhcpd dhcpleasectl dhcrelay dhcrelay6 dvmrpctl dvmrpd edquota eeprom \
eigrpd eigrpctl fdformat ftp-proxy fw_update gpioctl hostapd hostctl \
hotplugd httpd identd ifstated ikectl inetd installboot iostat \
iscsictl iscsid kgmon kvm_mkdb ldapd ldapctl ldomctl ldomd \
ldpd ldpctl lpr makefs mailwrapper map-mbone memconfig mksuncd \
mkuboot mopd mrinfo mrouted mtrace mtree ndp netgroup_mkdb \
dhcp6leasectl dhcpd dhcpleasectl dhcrelay dhcrelay6 dvmrpctl dvmrpd \
edquota eeprom eigrpd eigrpctl fdformat ftp-proxy fw_update gpioctl \
hostapd hostctl hotplugd httpd identd ifstated ikectl inetd \
installboot iostat iscsictl iscsid kgmon kvm_mkdb ldapd ldapctl \
ldomctl ldomd ldpd ldpctl lpr makefs mailwrapper map-mbone memconfig \
mksuncd mkuboot mopd mrinfo mrouted mtrace mtree ndp netgroup_mkdb \
npppctl npppd nsd ntpd ocspcheck ospfctl ospfd ospf6d ospf6ctl \
pcidump pkg_add portmap pppd procmap pstat pwd_mkdb \
quot quotaon ractl rad radiusctl radiusd rarpd rbootd \

View File

@ -0,0 +1,17 @@
# $OpenBSD: Makefile,v 1.1 2024/06/06 15:16:57 florian Exp $
PROG= dhcp6leasectl
SRCS= dhcp6leasectl.c
MAN= dhcp6leasectl.8
CFLAGS+= -Wall
CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
CFLAGS+= -Wmissing-declarations
CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
CFLAGS+= -Wsign-compare
CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../sbin/dhcp6leased
LDADD= -lutil
DPADD= ${LIBUTIL}
.include <bsd.prog.mk>

View File

@ -0,0 +1,73 @@
.\" $OpenBSD: dhcp6leasectl.8,v 1.1 2024/06/06 15:16:57 florian Exp $
.\"
.\" Copyright (c) 2021 Florian Obser <florian@openbsd.org>
.\" Copyright (c) 2016 Kenneth R Westerback <kwesterback@gmail.com>
.\" Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: June 6 2024 $
.Dt DHCP6LEASECTL 8
.Os
.Sh NAME
.Nm dhcp6leasectl
.Nd control the dhcp6leased client
.Sh SYNOPSIS
.Nm
.Op Fl l
.Op Fl s Ar socket
.Op Fl w Ar maxwait
.Ar interface
.Sh DESCRIPTION
The
.Nm
program instructs the
.Xr dhcp6leased 8
daemon to request a new lease.
.Pp
The following options are available:
.Bl -tag -width Ds
.It Fl l
List the configured lease on
.Ar interface
instead of requesting a new lease.
.It Fl s Ar socket
Use
.Ar socket
instead of the default
.Pa /dev/dhcp6leased.sock
to communicate with
.Xr dhcp6leased 8 .
.It Fl w Ar maxwait
Specify the maximum number of seconds to wait for
.Ar interface
to be configured.
The default is to wait 10 seconds unless
.Fl l
is specified.
.El
.Sh FILES
.Bl -tag -width "/dev/dhcp6leased.sockXX" -compact
.It Pa /dev/dhcp6leased.sock
.Ux Ns -domain
socket used for communication with
.Xr dhcp6leased 8 .
.El
.Sh SEE ALSO
.Xr dhcp6leased.conf 5 ,
.Xr dhcp6leased 8
.Sh HISTORY
The
.Nm
program first appeared in
.Ox 7.6 .

View File

@ -0,0 +1,240 @@
/* $OpenBSD: dhcp6leasectl.c,v 1.1 2024/06/06 15:16:57 florian Exp $ */
/*
* Copyright (c) 2021, 2024 Florian Obser <florian@openbsd.org>
* Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
* Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
* Copyright (c) 2003 Henning Brauer <henning@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/queue.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/un.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <err.h>
#include <errno.h>
#include <event.h>
#include <imsg.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include "dhcp6leased.h"
__dead void usage(void);
void show_interface_msg(struct ctl_engine_info *);
struct imsgbuf *ibuf;
__dead void
usage(void)
{
extern char *__progname;
fprintf(stderr, "usage: %s [-l] [-s socket] [-w maxwait] interface\n",
__progname);
exit(1);
}
int
main(int argc, char *argv[])
{
struct sockaddr_un sun;
struct imsg imsg;
struct ctl_engine_info *cei;
int ctl_sock;
int n, lFlag = 0, maxwait_set = 0, didot = 0;
int ch, if_index = 0, maxwait = 10, bound = 0;
char *sockname;
const char *errstr;
sockname = _PATH_CTRL_SOCKET;
while ((ch = getopt(argc, argv, "ls:w:")) != -1) {
switch (ch) {
case 'l':
lFlag = 1;
break;
case 's':
sockname = optarg;
break;
case 'w':
maxwait_set = 1;
maxwait = strtonum(optarg, 1, INT_MAX, &errstr);
if (errstr)
errx(1, "maxwait value is %s: %s",
errstr, optarg);
break;
default:
usage();
}
}
argc -= optind;
argv += optind;
if (argc != 1)
usage();
if ((if_index = if_nametoindex(argv[0])) == 0)
errx(1, "unknown interface");
if (lFlag && !maxwait_set)
maxwait = 0;
/* Connect to control socket. */
if ((ctl_sock = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
err(1, "socket");
memset(&sun, 0, sizeof(sun));
sun.sun_family = AF_UNIX;
strlcpy(sun.sun_path, sockname, sizeof(sun.sun_path));
if (connect(ctl_sock, (struct sockaddr *)&sun, sizeof(sun)) == -1)
err(1, "connect: %s", sockname);
if (pledge("stdio", NULL) == -1)
err(1, "pledge");
if ((ibuf = malloc(sizeof(struct imsgbuf))) == NULL)
err(1, NULL);
imsg_init(ibuf, ctl_sock);
if (!lFlag) {
imsg_compose(ibuf, IMSG_CTL_SEND_REQUEST, 0, 0, -1,
&if_index, sizeof(if_index));
while (ibuf->w.queued)
if (msgbuf_write(&ibuf->w) <= 0 && errno != EAGAIN)
err(1, "write error");
}
for(;;) {
imsg_compose(ibuf, IMSG_CTL_SHOW_INTERFACE_INFO, 0, 0, -1,
&if_index, sizeof(if_index));
while (ibuf->w.queued)
if (msgbuf_write(&ibuf->w) <= 0 && errno != EAGAIN)
err(1, "write error");
if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
errx(1, "imsg_read error");
if (n == 0)
errx(1, "pipe closed");
if ((n = imsg_get(ibuf, &imsg)) == -1)
errx(1, "imsg_get error");
if (n == 0)
break;
if (imsg.hdr.type == IMSG_CTL_END) {
if (lFlag)
errx(1, "non-autoconf interface %s", argv[0]);
else if (--maxwait < 0)
break;
else
continue;
}
cei = imsg.data;
if (strcmp(cei->state, "Bound") == 0)
bound = 1;
if (bound || --maxwait < 0) {
if (didot)
putchar('\n');
show_interface_msg(cei);
break;
} else {
didot = 1;
putchar('.');
fflush(stdout);
}
imsg_free(&imsg);
sleep(1);
}
close(ctl_sock);
free(ibuf);
return (0);
}
void
show_interface_msg(struct ctl_engine_info *cei)
{
struct timespec now, diff;
time_t d, h, m, s;
int i, has_pd = 0;
char buf[IF_NAMESIZE], *bufp;
char ntopbuf[INET6_ADDRSTRLEN];
bufp = if_indextoname(cei->if_index, buf);
printf("%s [%s]\n", bufp != NULL ? bufp : "unknown", cei->state);
for (i = 0; i < MAX_IA; i++) {
if (cei->pds[i].prefix_len == 0)
continue;
has_pd = 1;
printf ("\tIA_PD %d: %s/%d\n", i, inet_ntop(AF_INET6,
&cei->pds[i], ntopbuf, INET6_ADDRSTRLEN),
cei->pds[i].prefix_len);
}
if (has_pd) {
clock_gettime(CLOCK_MONOTONIC, &now);
timespecsub(&now, &cei->request_time, &diff);
s = cei->lease_time - diff.tv_sec;
if (s < 0)
s = 0;
if ( s > 86400 ) {
d = s / 86400;
/* round up */
if (s - d * 86400 > 43200)
d++;
printf("\tlease %lld day%s\n", d, d > 1 ? "s" : "");
} else if (s > 3600) {
h = s / 3600;
/* round up */
if (s - h * 3600 > 1800)
h++;
printf("\tlease %lld hour%s\n", h, h > 1 ? "s" : "");
} else if (s > 60) {
m = s / 60;
/* round up */
if (s - m * 60 > 30)
m++;
printf("\tlease %lld minute%s\n", m, m > 1 ? "s" : "");
} else
printf("\tlease %lld second%s\n", s, s > 1 ? "s" : "");
}
}

View File

@ -1,4 +1,4 @@
/* $OpenBSD: dhcpleasectl.c,v 1.7 2021/09/16 06:23:01 jmc Exp $ */
/* $OpenBSD: dhcpleasectl.c,v 1.8 2024/06/06 15:07:46 florian Exp $ */
/*
* Copyright (c) 2021 Florian Obser <florian@openbsd.org>
@ -287,23 +287,23 @@ show_interface_msg(struct ctl_engine_info *cei)
/* round up */
if (s - d * 86400 > 43200)
d++;
printf("\tlease %lld days\n", d);
printf("\tlease %lld day%s\n", d, d > 1 ? "s" : "");
} else if (s > 3600) {
h = s / 3600;
/* round up */
if (s - h * 3600 > 1800)
h++;
printf("\tlease %lld hours\n", h);
printf("\tlease %lld hour%s\n", h, h > 1 ? "s" : "");
} else if (s > 60) {
m = s / 60;
/* round up */
if (s - m * 60 > 30)
m++;
printf("\tlease %lld minutes\n", m);
printf("\tlease %lld minute%s\n", m, m > 1 ? "s" : "");
} else
printf("\tlease %lld seconds\n", s);
printf("\tlease %lld second%s\n", s, s > 1 ? "s" : "");
}
if (cei->server_identifier.s_addr != INADDR_ANY) {
if (inet_ntop(AF_INET, &cei->server_identifier, ipbuf,

View File

@ -1,4 +1,4 @@
/* $OpenBSD: cert.c,v 1.136 2024/06/04 14:10:53 tb Exp $ */
/* $OpenBSD: cert.c,v 1.140 2024/06/06 12:38:02 tb Exp $ */
/*
* Copyright (c) 2022 Theo Buehler <tb@openbsd.org>
* Copyright (c) 2021 Job Snijders <job@openbsd.org>
@ -1073,7 +1073,6 @@ struct cert *
ta_parse(const char *fn, struct cert *p, const unsigned char *pkey,
size_t pkeysz)
{
ASN1_TIME *notBefore, *notAfter;
EVP_PKEY *pk, *opk;
time_t now = get_current_time();
@ -1095,35 +1094,26 @@ ta_parse(const char *fn, struct cert *p, const unsigned char *pkey,
"pubkey does not match TAL pubkey", fn);
goto badcert;
}
if ((notBefore = X509_get_notBefore(p->x509)) == NULL) {
warnx("%s: certificate has invalid notBefore", fn);
goto badcert;
}
if ((notAfter = X509_get_notAfter(p->x509)) == NULL) {
warnx("%s: certificate has invalid notAfter", fn);
goto badcert;
}
if (X509_cmp_time(notBefore, &now) != -1) {
if (p->notbefore >= now) {
warnx("%s: certificate not yet valid", fn);
goto badcert;
}
if (X509_cmp_time(notAfter, &now) != 1) {
if (p->notafter <= now) {
warnx("%s: certificate has expired", fn);
goto badcert;
}
if (p->aki != NULL && strcmp(p->aki, p->ski)) {
warnx("%s: RFC 6487 section 8.4.2: "
warnx("%s: RFC 6487 section 4.8.3: "
"trust anchor AKI, if specified, must match SKI", fn);
goto badcert;
}
if (p->aia != NULL) {
warnx("%s: RFC 6487 section 8.4.7: "
warnx("%s: RFC 6487 section 4.8.7: "
"trust anchor must not have AIA", fn);
goto badcert;
}
if (p->crl != NULL) {
warnx("%s: RFC 6487 section 8.4.2: "
warnx("%s: RFC 6487 section 4.8.6: "
"trust anchor may not specify CRL resource", fn);
goto badcert;
}
@ -1131,6 +1121,14 @@ ta_parse(const char *fn, struct cert *p, const unsigned char *pkey,
warnx("%s: BGPsec cert cannot be a trust anchor", fn);
goto badcert;
}
/*
* Do not replace with a <= 0 check since OpenSSL 3 broke that:
* https://github.com/openssl/openssl/issues/24575
*/
if (X509_verify(p->x509, pk) != 1) {
warnx("%s: failed to verify signature", fn);
goto badcert;
}
if (x509_any_inherits(p->x509)) {
warnx("%s: Trust anchor IP/AS resources may not inherit", fn);
goto badcert;
@ -1139,7 +1137,7 @@ ta_parse(const char *fn, struct cert *p, const unsigned char *pkey,
EVP_PKEY_free(pk);
return p;
badcert:
badcert:
EVP_PKEY_free(pk);
cert_free(p);
return NULL;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: filemode.c,v 1.42 2024/05/20 15:51:43 claudio Exp $ */
/* $OpenBSD: filemode.c,v 1.43 2024/06/06 07:19:10 tb Exp $ */
/*
* Copyright (c) 2019 Claudio Jeker <claudio@openbsd.org>
* Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv>
@ -526,9 +526,15 @@ proc_parser_file(char *file, unsigned char *buf, size_t len)
constraints_validate(file, cert);
}
} else if (is_ta) {
expires = NULL;
notafter = NULL;
if ((tal = find_tal(cert)) != NULL) {
cert = ta_parse(file, cert, tal->pkey, tal->pkeysz);
status = (cert != NULL);
if (status) {
expires = &cert->expires;
notafter = &cert->notafter;
}
if (outformats & FORMAT_JSON)
json_do_string("tal", tal->descr);
else
@ -538,7 +544,6 @@ proc_parser_file(char *file, unsigned char *buf, size_t len)
} else {
cert_free(cert);
cert = NULL;
expires = NULL;
status = 0;
}
}

View File

@ -1,4 +1,4 @@
/* $OpenBSD: print.c,v 1.53 2024/05/29 13:26:24 tb Exp $ */
/* $OpenBSD: print.c,v 1.54 2024/06/06 05:57:36 tb Exp $ */
/*
* Copyright (c) 2021 Claudio Jeker <claudio@openbsd.org>
* Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv>
@ -211,7 +211,6 @@ ip_resources_print(struct cert_ip *ips, size_t ipsz, size_t asz)
size_t i;
int sockt;
for (i = 0; i < ipsz; i++) {
if (outformats & FORMAT_JSON)
json_do_object("resource", 1);