sync with OpenBSD -current

This commit is contained in:
purplerain 2024-02-05 01:13:44 +00:00
parent 3f3212838f
commit 36c45cb00b
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
26 changed files with 324 additions and 349 deletions

View file

@ -46,17 +46,17 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// NB: Offsets into ctype<char>::_M_table force a particular size // NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum. // on the mask type. Because of this, we don't use an enum.
typedef char mask; typedef char mask;
static const mask upper = _U; static const mask upper = _CTYPE_U;
static const mask lower = _L; static const mask lower = _CTYPE_L;
static const mask alpha = _U | _L; static const mask alpha = _CTYPE_U | _CTYPE_L;
static const mask digit = _N; static const mask digit = _CTYPE_N;
static const mask xdigit = _N | _X; static const mask xdigit = _CTYPE_N | _CTYPE_X;
static const mask space = _S; static const mask space = _CTYPE_S;
static const mask print = char(_P | _U | _L | _N | _B); static const mask print = char(_CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B);
static const mask graph = _P | _U | _L | _N; static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
static const mask cntrl = _C; static const mask cntrl = _CTYPE_C;
static const mask punct = _P; static const mask punct = _CTYPE_P;
static const mask alnum = _U | _L | _N; static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
}; };
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE

View file

@ -41,15 +41,15 @@
// NB: Offsets into ctype<char>::_M_table force a particular size // NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum. // on the mask type. Because of this, we don't use an enum.
typedef char mask; typedef char mask;
static const mask upper = _U; static const mask upper = _CTYPE_U;
static const mask lower = _L; static const mask lower = _CTYPE_L;
static const mask alpha = _U | _L; static const mask alpha = _CTYPE_U | _CTYPE_L;
static const mask digit = _N; static const mask digit = _CTYPE_N;
static const mask xdigit = _N | _X; static const mask xdigit = _CTYPE_N | _CTYPE_X;
static const mask space = _S; static const mask space = _CTYPE_S;
static const mask print = _P | _U | _L | _N | _B; static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B;
static const mask graph = _P | _U | _L | _N; static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
static const mask cntrl = _C; static const mask cntrl = _CTYPE_C;
static const mask punct = _P; static const mask punct = _CTYPE_P;
static const mask alnum = _U | _L | _N; static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
}; };

View file

@ -2703,6 +2703,7 @@ get_segment_type (unsigned long p_type)
case PT_GNU_EH_FRAME: case PT_GNU_EH_FRAME:
return "GNU_EH_FRAME"; return "GNU_EH_FRAME";
case PT_GNU_STACK: return "GNU_STACK"; case PT_GNU_STACK: return "GNU_STACK";
case PT_GNU_PROPERTY: return "GNU_PROPERTY";
case PT_GNU_RELRO: return "GNU_RELRO"; case PT_GNU_RELRO: return "GNU_RELRO";
case PT_OPENBSD_RANDOMIZE: case PT_OPENBSD_RANDOMIZE:
return "OPENBSD_RANDOMIZE"; return "OPENBSD_RANDOMIZE";

View file

@ -310,6 +310,7 @@
#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */ #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */ #define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */ #define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
#define PT_GNU_PROPERTY (PT_LOOS + 0x474e553) /* Program property note */
#define PT_OPENBSD_RANDOMIZE 0x65a3dbe6 /* Fill with random data. */ #define PT_OPENBSD_RANDOMIZE 0x65a3dbe6 /* Fill with random data. */
#define PT_OPENBSD_WXNEEDED 0x65a3dbe7 /* Program does W^X violations */ #define PT_OPENBSD_WXNEEDED 0x65a3dbe7 /* Program does W^X violations */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ctype.h,v 1.25 2017/09/05 03:16:13 schwarze Exp $ */ /* $OpenBSD: ctype.h,v 1.26 2024/02/04 13:03:18 jca Exp $ */
/* $NetBSD: ctype.h,v 1.14 1994/10/26 00:55:47 cgd Exp $ */ /* $NetBSD: ctype.h,v 1.14 1994/10/26 00:55:47 cgd Exp $ */
/* /*
@ -42,14 +42,14 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#define _U 0x01 #define _CTYPE_U 0x01
#define _L 0x02 #define _CTYPE_L 0x02
#define _N 0x04 #define _CTYPE_N 0x04
#define _S 0x08 #define _CTYPE_S 0x08
#define _P 0x10 #define _CTYPE_P 0x10
#define _C 0x20 #define _CTYPE_C 0x20
#define _X 0x40 #define _CTYPE_X 0x40
#define _B 0x80 #define _CTYPE_B 0x80
#if __POSIX_VISIBLE >= 200809 #if __POSIX_VISIBLE >= 200809
#ifndef _LOCALE_T_DEFINED_ #ifndef _LOCALE_T_DEFINED_
@ -114,57 +114,62 @@ int toupper_l(int, locale_t);
__only_inline int isalnum(int _c) __only_inline int isalnum(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & (_U|_L|_N))); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] &
(_CTYPE_U|_CTYPE_L|_CTYPE_N)));
} }
__only_inline int isalpha(int _c) __only_inline int isalpha(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & (_U|_L))); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] &
(_CTYPE_U|_CTYPE_L)));
} }
__only_inline int iscntrl(int _c) __only_inline int iscntrl(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _C)); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _CTYPE_C));
} }
__only_inline int isdigit(int _c) __only_inline int isdigit(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _N)); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _CTYPE_N));
} }
__only_inline int isgraph(int _c) __only_inline int isgraph(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & (_P|_U|_L|_N))); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] &
(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
} }
__only_inline int islower(int _c) __only_inline int islower(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _L)); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _CTYPE_L));
} }
__only_inline int isprint(int _c) __only_inline int isprint(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & (_P|_U|_L|_N|_B))); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] &
(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
} }
__only_inline int ispunct(int _c) __only_inline int ispunct(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _P)); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _CTYPE_P));
} }
__only_inline int isspace(int _c) __only_inline int isspace(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _S)); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _CTYPE_S));
} }
__only_inline int isupper(int _c) __only_inline int isupper(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _U)); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _CTYPE_U));
} }
__only_inline int isxdigit(int _c) __only_inline int isxdigit(int _c)
{ {
return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & (_N|_X))); return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] &
(_CTYPE_N|_CTYPE_X)));
} }
__only_inline int tolower(int _c) __only_inline int tolower(int _c)

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ctype_.c,v 1.12 2015/09/19 04:02:21 guenther Exp $ */ /* $OpenBSD: ctype_.c,v 1.13 2024/02/04 13:03:18 jca Exp $ */
/* /*
* Copyright (c) 1989 The Regents of the University of California. * Copyright (c) 1989 The Regents of the University of California.
* All rights reserved. * All rights reserved.
@ -36,6 +36,16 @@
#include <ctype.h> #include <ctype.h>
#include "ctype_private.h" #include "ctype_private.h"
/* Shorter names for the defines provided by <ctype.h> */
#define _U _CTYPE_U
#define _L _CTYPE_L
#define _N _CTYPE_N
#define _S _CTYPE_S
#define _P _CTYPE_P
#define _C _CTYPE_C
#define _X _CTYPE_X
#define _B _CTYPE_B
const char _C_ctype_[1 + CTYPE_NUM_CHARS] = { const char _C_ctype_[1 + CTYPE_NUM_CHARS] = {
0, 0,
_C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C,

View file

@ -1,4 +1,4 @@
/* $OpenBSD: isctype.c,v 1.12 2015/09/13 11:38:08 guenther Exp $ */ /* $OpenBSD: isctype.c,v 1.13 2024/02/04 13:03:18 jca Exp $ */
/* /*
* Copyright (c) 1989 The Regents of the University of California. * Copyright (c) 1989 The Regents of the University of California.
* All rights reserved. * All rights reserved.
@ -41,7 +41,8 @@
int int
isalnum(int c) isalnum(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_U|_L|_N))); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] &
(_CTYPE_U|_CTYPE_L|_CTYPE_N)));
} }
DEF_STRONG(isalnum); DEF_STRONG(isalnum);
@ -49,7 +50,8 @@ DEF_STRONG(isalnum);
int int
isalpha(int c) isalpha(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_U|_L))); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] &
(_CTYPE_U|_CTYPE_L)));
} }
DEF_STRONG(isalpha); DEF_STRONG(isalpha);
@ -65,7 +67,7 @@ DEF_STRONG(isblank);
int int
iscntrl(int c) iscntrl(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _C)); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
} }
DEF_STRONG(iscntrl); DEF_STRONG(iscntrl);
@ -73,7 +75,7 @@ DEF_STRONG(iscntrl);
int int
isdigit(int c) isdigit(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _N)); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
} }
DEF_STRONG(isdigit); DEF_STRONG(isdigit);
@ -81,7 +83,8 @@ DEF_STRONG(isdigit);
int int
isgraph(int c) isgraph(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_P|_U|_L|_N))); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] &
(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
} }
DEF_STRONG(isgraph); DEF_STRONG(isgraph);
@ -89,7 +92,7 @@ DEF_STRONG(isgraph);
int int
islower(int c) islower(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _L)); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
} }
DEF_STRONG(islower); DEF_STRONG(islower);
@ -97,7 +100,8 @@ DEF_STRONG(islower);
int int
isprint(int c) isprint(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_P|_U|_L|_N|_B))); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] &
(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
} }
DEF_STRONG(isprint); DEF_STRONG(isprint);
@ -105,7 +109,7 @@ DEF_STRONG(isprint);
int int
ispunct(int c) ispunct(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _P)); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
} }
DEF_STRONG(ispunct); DEF_STRONG(ispunct);
@ -113,7 +117,7 @@ DEF_STRONG(ispunct);
int int
isspace(int c) isspace(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _S)); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
} }
DEF_STRONG(isspace); DEF_STRONG(isspace);
@ -121,7 +125,7 @@ DEF_STRONG(isspace);
int int
isupper(int c) isupper(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _U)); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
} }
DEF_STRONG(isupper); DEF_STRONG(isupper);
@ -129,7 +133,8 @@ DEF_STRONG(isupper);
int int
isxdigit(int c) isxdigit(int c)
{ {
return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_N|_X))); return (c == EOF ? 0 : ((_ctype_ + 1)[(unsigned char)c] &
(_CTYPE_N|_CTYPE_X)));
} }
DEF_STRONG(isxdigit); DEF_STRONG(isxdigit);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: iswctype.c,v 1.8 2022/07/25 21:38:24 guenther Exp $ */ /* $OpenBSD: iswctype.c,v 1.9 2024/02/04 12:46:01 jca Exp $ */
/* $NetBSD: iswctype.c,v 1.15 2005/02/09 21:35:46 kleink Exp $ */ /* $NetBSD: iswctype.c,v 1.15 2005/02/09 21:35:46 kleink Exp $ */
/* /*
@ -80,75 +80,75 @@ __tolower_w(wint_t c)
int int
iswalnum(wint_t c) iswalnum(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_A|_CTYPE_D)); return (__isctype_w((c), _RUNETYPE_A|_RUNETYPE_D));
} }
int int
iswalpha(wint_t c) iswalpha(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_A)); return (__isctype_w((c), _RUNETYPE_A));
} }
int int
iswblank(wint_t c) iswblank(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_B)); return (__isctype_w((c), _RUNETYPE_B));
} }
int int
iswcntrl(wint_t c) iswcntrl(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_C)); return (__isctype_w((c), _RUNETYPE_C));
} }
int int
iswdigit(wint_t c) iswdigit(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_D)); return (__isctype_w((c), _RUNETYPE_D));
} }
int int
iswgraph(wint_t c) iswgraph(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_G)); return (__isctype_w((c), _RUNETYPE_G));
} }
int int
iswlower(wint_t c) iswlower(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_L)); return (__isctype_w((c), _RUNETYPE_L));
} }
int int
iswprint(wint_t c) iswprint(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_R)); return (__isctype_w((c), _RUNETYPE_R));
} }
int int
iswpunct(wint_t c) iswpunct(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_P)); return (__isctype_w((c), _RUNETYPE_P));
} }
int int
iswspace(wint_t c) iswspace(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_S)); return (__isctype_w((c), _RUNETYPE_S));
} }
DEF_STRONG(iswspace); DEF_STRONG(iswspace);
int int
iswupper(wint_t c) iswupper(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_U)); return (__isctype_w((c), _RUNETYPE_U));
} }
DEF_STRONG(iswupper); DEF_STRONG(iswupper);
int int
iswxdigit(wint_t c) iswxdigit(wint_t c)
{ {
return (__isctype_w((c), _CTYPE_X)); return (__isctype_w((c), _RUNETYPE_X));
} }
wint_t wint_t
@ -167,8 +167,9 @@ DEF_STRONG(towlower);
int int
wcwidth(wchar_t c) wcwidth(wchar_t c)
{ {
if (__isctype_w((c), _CTYPE_R)) if (__isctype_w((c), _RUNETYPE_R))
return (((unsigned)__runetype_w(c) & _CTYPE_SWM) >> _CTYPE_SWS); return (((unsigned)__runetype_w(c) & _RUNETYPE_SWM) >>
_RUNETYPE_SWS);
return -1; return -1;
} }
DEF_WEAK(wcwidth); DEF_WEAK(wcwidth);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: iswctype_l.c,v 1.2 2022/07/25 21:38:24 guenther Exp $ */ /* $OpenBSD: iswctype_l.c,v 1.3 2024/02/04 12:46:01 jca Exp $ */
/* $NetBSD: iswctype.c,v 1.15 2005/02/09 21:35:46 kleink Exp $ */ /* $NetBSD: iswctype.c,v 1.15 2005/02/09 21:35:46 kleink Exp $ */
/* /*
@ -82,73 +82,73 @@ __isctype_wl(wint_t c, _RuneType f, locale_t locale)
int int
iswalnum_l(wint_t c, locale_t locale) iswalnum_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_A|_CTYPE_D, locale); return __isctype_wl(c, _RUNETYPE_A|_RUNETYPE_D, locale);
} }
int int
iswalpha_l(wint_t c, locale_t locale) iswalpha_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_A, locale); return __isctype_wl(c, _RUNETYPE_A, locale);
} }
int int
iswblank_l(wint_t c, locale_t locale) iswblank_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_B, locale); return __isctype_wl(c, _RUNETYPE_B, locale);
} }
int int
iswcntrl_l(wint_t c, locale_t locale) iswcntrl_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_C, locale); return __isctype_wl(c, _RUNETYPE_C, locale);
} }
int int
iswdigit_l(wint_t c, locale_t locale) iswdigit_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_D, locale); return __isctype_wl(c, _RUNETYPE_D, locale);
} }
int int
iswgraph_l(wint_t c, locale_t locale) iswgraph_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_G, locale); return __isctype_wl(c, _RUNETYPE_G, locale);
} }
int int
iswlower_l(wint_t c, locale_t locale) iswlower_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_L, locale); return __isctype_wl(c, _RUNETYPE_L, locale);
} }
int int
iswprint_l(wint_t c, locale_t locale) iswprint_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_R, locale); return __isctype_wl(c, _RUNETYPE_R, locale);
} }
int int
iswpunct_l(wint_t c, locale_t locale) iswpunct_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_P, locale); return __isctype_wl(c, _RUNETYPE_P, locale);
} }
int int
iswspace_l(wint_t c, locale_t locale) iswspace_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_S, locale); return __isctype_wl(c, _RUNETYPE_S, locale);
} }
int int
iswupper_l(wint_t c, locale_t locale) iswupper_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_U, locale); return __isctype_wl(c, _RUNETYPE_U, locale);
} }
int int
iswxdigit_l(wint_t c, locale_t locale) iswxdigit_l(wint_t c, locale_t locale)
{ {
return __isctype_wl(c, _CTYPE_X, locale); return __isctype_wl(c, _RUNETYPE_X, locale);
} }
wint_t wint_t

View file

@ -1,4 +1,4 @@
/* $OpenBSD: rune.h,v 1.4 2017/09/05 03:16:13 schwarze Exp $ */ /* $OpenBSD: rune.h,v 1.5 2024/02/04 12:46:01 jca Exp $ */
/* $NetBSD: rune.h,v 1.9 2003/08/07 16:43:04 agc Exp $ */ /* $NetBSD: rune.h,v 1.9 2003/08/07 16:43:04 agc Exp $ */
/*- /*-
@ -47,34 +47,6 @@
#define _LOCALE_C (locale_t)1 #define _LOCALE_C (locale_t)1
#define _LOCALE_UTF8 (locale_t)2 #define _LOCALE_UTF8 (locale_t)2
/*
* map _RTYPE_x to _CTYPE_x
*
* XXX: these should be defined in ctype.h and used in isxxx macros.
* (note: current isxxx macros use "old" NetBSD masks and
* _CTYPE_x are not public.)
*/
#define _CTYPE_A _RUNETYPE_A
#define _CTYPE_C _RUNETYPE_C
#define _CTYPE_D _RUNETYPE_D
#define _CTYPE_G _RUNETYPE_G
#define _CTYPE_L _RUNETYPE_L
#define _CTYPE_P _RUNETYPE_P
#define _CTYPE_S _RUNETYPE_S
#define _CTYPE_U _RUNETYPE_U
#define _CTYPE_X _RUNETYPE_X
#define _CTYPE_B _RUNETYPE_B
#define _CTYPE_R _RUNETYPE_R
#define _CTYPE_I _RUNETYPE_I
#define _CTYPE_T _RUNETYPE_T
#define _CTYPE_Q _RUNETYPE_Q
#define _CTYPE_SWM _RUNETYPE_SWM
#define _CTYPE_SWS _RUNETYPE_SWS
#define _CTYPE_SW0 _RUNETYPE_SW0
#define _CTYPE_SW1 _RUNETYPE_SW1
#define _CTYPE_SW2 _RUNETYPE_SW2
#define _CTYPE_SW3 _RUNETYPE_SW3
__BEGIN_HIDDEN_DECLS __BEGIN_HIDDEN_DECLS
extern _RuneLocale _DefaultRuneLocale; extern _RuneLocale _DefaultRuneLocale;
extern _RuneLocale *_Utf8RuneLocale; extern _RuneLocale *_Utf8RuneLocale;

View file

@ -48,134 +48,134 @@ _RuneLocale _DefaultRuneLocale = {
"NONE", "NONE",
_DEFAULT_INVALID_RUNE, _DEFAULT_INVALID_RUNE,
{ /*00*/ _CTYPE_C, { /*00*/ _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
/*08*/ _CTYPE_C, /*08*/ _RUNETYPE_C,
_CTYPE_C|_CTYPE_S|_CTYPE_B, _RUNETYPE_C|_RUNETYPE_S|_RUNETYPE_B,
_CTYPE_C|_CTYPE_S, _RUNETYPE_C|_RUNETYPE_S,
_CTYPE_C|_CTYPE_S, _RUNETYPE_C|_RUNETYPE_S,
_CTYPE_C|_CTYPE_S, _RUNETYPE_C|_RUNETYPE_S,
_CTYPE_C|_CTYPE_S, _RUNETYPE_C|_RUNETYPE_S,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
/*10*/ _CTYPE_C, /*10*/ _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
/*18*/ _CTYPE_C, /*18*/ _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
_CTYPE_C, _RUNETYPE_C,
/*20*/ _CTYPE_S|_CTYPE_B|_CTYPE_R|_CTYPE_SW1, /*20*/ _RUNETYPE_S|_RUNETYPE_B|_RUNETYPE_R|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
/*28*/ _CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, /*28*/ _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
/*30*/ _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|0, /*30*/ _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|0,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|1, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|1,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|2, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|2,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|3, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|3,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|4, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|4,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|5, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|5,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|6, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|6,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|7, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|7,
/*38*/ _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|8, /*38*/ _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|8,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|9, _RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|9,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
/*40*/ _CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, /*40*/ _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|10, _RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|10,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|11, _RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|11,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|12, _RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|12,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|13, _RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|13,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|14, _RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|14,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|15, _RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|15,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
/*48*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, /*48*/ _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
/*50*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, /*50*/ _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
/*58*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, /*58*/ _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
/*60*/ _CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, /*60*/ _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|10, _RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|10,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|11, _RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|11,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|12, _RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|12,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|13, _RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|13,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|14, _RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|14,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|15, _RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|15,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
/*68*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, /*68*/ _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
/*70*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, /*70*/ _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
/*78*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, /*78*/ _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1, _RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1, _RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
_CTYPE_C, _RUNETYPE_C,
}, },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,

View file

@ -1,4 +1,4 @@
/* $OpenBSD: wctype.c,v 1.1 2022/07/25 21:38:24 guenther Exp $ */ /* $OpenBSD: wctype.c,v 1.2 2024/02/04 12:46:01 jca Exp $ */
/* $NetBSD: iswctype.c,v 1.15 2005/02/09 21:35:46 kleink Exp $ */ /* $NetBSD: iswctype.c,v 1.15 2005/02/09 21:35:46 kleink Exp $ */
/* /*
@ -43,18 +43,18 @@
static struct _WCTypeEntry wctype_entries[_WCTYPE_NINDEXES] = static struct _WCTypeEntry wctype_entries[_WCTYPE_NINDEXES] =
{ {
{ "alnum", _CTYPE_A|_CTYPE_D }, { "alnum", _RUNETYPE_A|_RUNETYPE_D },
{ "alpha", _CTYPE_A }, { "alpha", _RUNETYPE_A },
{ "blank", _CTYPE_B }, { "blank", _RUNETYPE_B },
{ "cntrl", _CTYPE_C }, { "cntrl", _RUNETYPE_C },
{ "digit", _CTYPE_D }, { "digit", _RUNETYPE_D },
{ "graph", _CTYPE_G }, { "graph", _RUNETYPE_G },
{ "lower", _CTYPE_L }, { "lower", _RUNETYPE_L },
{ "print", _CTYPE_R }, { "print", _RUNETYPE_R },
{ "punct", _CTYPE_P }, { "punct", _RUNETYPE_P },
{ "space", _CTYPE_S }, { "space", _RUNETYPE_S },
{ "upper", _CTYPE_U }, { "upper", _RUNETYPE_U },
{ "xdigit", _CTYPE_X }, { "xdigit", _RUNETYPE_X },
}; };
wctype_t wctype_t

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ssl_lib.c,v 1.319 2024/02/03 15:58:34 beck Exp $ */ /* $OpenBSD: ssl_lib.c,v 1.320 2024/02/04 20:50:23 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved. * All rights reserved.
* *
@ -1068,7 +1068,7 @@ SSL_is_server(const SSL *s)
LSSL_ALIAS(SSL_is_server); LSSL_ALIAS(SSL_is_server);
static long static long
ssl_get_default_timeout() ssl_get_default_timeout(void)
{ {
/* /*
* 2 hours, the 24 hours mentioned in the TLSv1 spec * 2 hours, the 24 hours mentioned in the TLSv1 spec

View file

@ -1,4 +1,4 @@
/* $OpenBSD: tls13_handshake_msg.c,v 1.6 2022/07/22 19:33:53 jsing Exp $ */ /* $OpenBSD: tls13_handshake_msg.c,v 1.7 2024/02/04 20:50:23 tb Exp $ */
/* /*
* Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org>
* *
@ -34,7 +34,7 @@ struct tls13_handshake_msg {
}; };
struct tls13_handshake_msg * struct tls13_handshake_msg *
tls13_handshake_msg_new() tls13_handshake_msg_new(void)
{ {
struct tls13_handshake_msg *msg = NULL; struct tls13_handshake_msg *msg = NULL;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: timingsafe.c,v 1.3 2014/06/21 22:57:15 tedu Exp $ */ /* $OpenBSD: timingsafe.c,v 1.4 2024/02/04 20:51:21 tb Exp $ */
/* /*
* Copyright (c) 2014 Google Inc. * Copyright (c) 2014 Google Inc.
* *
@ -28,7 +28,7 @@ enum {
static unsigned char bufone[N], buftwo[N]; static unsigned char bufone[N], buftwo[N];
void void
check() check(void)
{ {
int cmp = memcmp(bufone, buftwo, N); int cmp = memcmp(bufone, buftwo, N);
@ -49,7 +49,7 @@ check()
} }
int int
main() main(void)
{ {
int i, j; int i, j;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: asn1basic.c,v 1.15 2023/08/15 21:05:44 tb Exp $ */ /* $OpenBSD: asn1basic.c,v 1.16 2024/02/04 13:07:02 tb Exp $ */
/* /*
* Copyright (c) 2017, 2021 Joel Sing <jsing@openbsd.org> * Copyright (c) 2017, 2021 Joel Sing <jsing@openbsd.org>
* Copyright (c) 2023 Theo Buehler <tb@openbsd.org> * Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
@ -699,7 +699,7 @@ asn1_integer_null_data_test(void)
ASN1_INTEGER *aint = NULL; ASN1_INTEGER *aint = NULL;
uint8_t *p = NULL, *pp; uint8_t *p = NULL, *pp;
int len; int len;
int failed = 0; int failed = 1;
if ((aint = ASN1_INTEGER_new()) == NULL) { if ((aint = ASN1_INTEGER_new()) == NULL) {
fprintf(stderr, "FAIL: ASN1_INTEGER_new() == NULL\n"); fprintf(stderr, "FAIL: ASN1_INTEGER_new() == NULL\n");

View file

@ -1,4 +1,4 @@
/* $OpenBSD: codepatch.c,v 1.10 2023/07/31 01:33:57 guenther Exp $ */ /* $OpenBSD: codepatch.c,v 1.11 2024/02/04 20:18:48 guenther Exp $ */
/* /*
* Copyright (c) 2014-2015 Stefan Fritsch <sf@sfritsch.de> * Copyright (c) 2014-2015 Stefan Fritsch <sf@sfritsch.de>
* *
@ -39,8 +39,9 @@ extern struct codepatch codepatch_end;
extern char __cptext_start[]; extern char __cptext_start[];
extern char __cptext_end[]; extern char __cptext_end[];
void codepatch_control_flow(uint16_t _tag, void *_func, int _opcode, enum op_type { OP_CALL, OP_JMP };
const char *_op); __cptext void codepatch_control_flow(uint16_t _tag, void *_func,
enum op_type _type);
void void
codepatch_fill_nop(void *caddr, uint16_t len) codepatch_fill_nop(void *caddr, uint16_t len)
@ -155,26 +156,27 @@ codepatch_replace(uint16_t tag, const void *code, size_t len)
void void
codepatch_call(uint16_t tag, void *func) codepatch_call(uint16_t tag, void *func)
{ {
/* 0xe8 == call near */ codepatch_control_flow(tag, func, OP_CALL);
codepatch_control_flow(tag, func, 0xe8, "call");
} }
void void
codepatch_jmp(uint16_t tag, void *func) codepatch_jmp(uint16_t tag, void *func)
{ {
/* 0xe9 == jmp near */ codepatch_control_flow(tag, func, OP_JMP);
codepatch_control_flow(tag, func, 0xe9, "jmp");
} }
/* Patch with call or jump to func */ /* Patch with call or jump to func */
void void
codepatch_control_flow(uint16_t tag, void *func, int opcode, const char *op) codepatch_control_flow(uint16_t tag, void *func, enum op_type type)
{ {
struct codepatch *patch; struct codepatch *patch;
unsigned char *rwaddr; unsigned char *rwaddr;
int32_t offset; int32_t offset;
int i = 0; int i = 0;
vaddr_t rwmap = 0; vaddr_t rwmap = 0;
const char *op = type == OP_JMP ? "jmp" : "call";
char opcode = type == OP_JMP ? 0xe9 /* jmp near */
: 0xe8 /* call near */;
DBGPRINT("patching tag %u with %s %p", tag, op, func); DBGPRINT("patching tag %u with %s %p", tag, op, func);
@ -189,7 +191,10 @@ codepatch_control_flow(uint16_t tag, void *func, int opcode, const char *op)
rwaddr = codepatch_maprw(&rwmap, patch->addr); rwaddr = codepatch_maprw(&rwmap, patch->addr);
rwaddr[0] = opcode; rwaddr[0] = opcode;
memcpy(rwaddr + 1, &offset, sizeof(offset)); memcpy(rwaddr + 1, &offset, sizeof(offset));
if (type == OP_CALL)
codepatch_fill_nop(rwaddr + 5, patch->len - 5); codepatch_fill_nop(rwaddr + 5, patch->len - 5);
else /* OP_JMP */
memset(rwaddr + 5, 0xCC /* int3 */, patch->len - 5);
i++; i++;
} }
codepatch_unmaprw(rwmap); codepatch_unmaprw(rwmap);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: efiboot.c,v 1.48 2023/05/12 16:43:00 kettenis Exp $ */ /* $OpenBSD: efiboot.c,v 1.49 2024/02/04 18:44:23 kettenis Exp $ */
/* /*
* Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net> * Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net>
@ -587,6 +587,8 @@ efi_dma_constraint(void)
fdt_node_is_compatible(node, "rockchip,rk3588") || fdt_node_is_compatible(node, "rockchip,rk3588") ||
fdt_node_is_compatible(node, "rockchip,rk3588s")) fdt_node_is_compatible(node, "rockchip,rk3588s"))
dma_constraint[1] = htobe64(0xffffffff); dma_constraint[1] = htobe64(0xffffffff);
if (fdt_node_is_compatible(node, "lenovo,thinkpad-x13s"))
dma_constraint[1] = htobe64(0xffffffff);
/* Pass DMA constraint. */ /* Pass DMA constraint. */
node = fdt_find_node("/chosen"); node = fdt_find_node("/chosen");

View file

@ -1,4 +1,4 @@
/* $OpenBSD: qwx.c,v 1.16 2024/02/03 20:07:19 kettenis Exp $ */ /* $OpenBSD: qwx.c,v 1.17 2024/02/04 17:51:59 kettenis Exp $ */
/* /*
* Copyright 2023 Stefan Sperling <stsp@openbsd.org> * Copyright 2023 Stefan Sperling <stsp@openbsd.org>
@ -8368,7 +8368,7 @@ qwx_qmi_load_bdf_qmi(struct qwx_softc *sc, int regdb)
if (regdb) if (regdb)
bdf_type = ATH11K_QMI_BDF_TYPE_REGDB; bdf_type = ATH11K_QMI_BDF_TYPE_REGDB;
else if (len >= QWX_SELFMAG && else if (boardfw_len >= QWX_SELFMAG &&
memcmp(boardfw, QWX_ELFMAG, QWX_SELFMAG) == 0) memcmp(boardfw, QWX_ELFMAG, QWX_SELFMAG) == 0)
bdf_type = ATH11K_QMI_BDF_TYPE_ELF; bdf_type = ATH11K_QMI_BDF_TYPE_ELF;
else else
@ -8376,9 +8376,9 @@ qwx_qmi_load_bdf_qmi(struct qwx_softc *sc, int regdb)
DPRINTF("%s: bdf_type %d\n", __func__, bdf_type); DPRINTF("%s: bdf_type %d\n", __func__, bdf_type);
fw_size = MIN(sc->hw_params.fw.board_size, len); fw_size = MIN(sc->hw_params.fw.board_size, boardfw_len);
ret = qwx_qmi_load_file_target_mem(sc, boardfw, boardfw_len, bdf_type); ret = qwx_qmi_load_file_target_mem(sc, boardfw, fw_size, bdf_type);
if (ret < 0) { if (ret < 0) {
printf("%s: failed to load bdf file\n", __func__); printf("%s: failed to load bdf file\n", __func__);
goto out; goto out;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ca.c,v 1.57 2023/11/13 12:43:08 tb Exp $ */ /* $OpenBSD: ca.c,v 1.58 2024/02/04 13:08:29 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved. * All rights reserved.
* *
@ -2576,7 +2576,6 @@ get_certificate_status(const char *serial, CA_DB *db)
goto err; goto err;
} }
if (strlen(serial) % 2) { if (strlen(serial) % 2) {
/* Set the first char to 0 */ ;
row[DB_serial][0] = '0'; row[DB_serial][0] = '0';
/* Copy String from serial to row[DB_serial] */ /* Copy String from serial to row[DB_serial] */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: cert.c,v 1.124 2024/02/03 14:43:15 tb Exp $ */ /* $OpenBSD: cert.c,v 1.125 2024/02/04 07:43:27 tb Exp $ */
/* /*
* Copyright (c) 2022 Theo Buehler <tb@openbsd.org> * Copyright (c) 2022 Theo Buehler <tb@openbsd.org>
* Copyright (c) 2021 Job Snijders <job@openbsd.org> * Copyright (c) 2021 Job Snijders <job@openbsd.org>
@ -737,7 +737,8 @@ struct cert *
cert_parse_pre(const char *fn, const unsigned char *der, size_t len) cert_parse_pre(const char *fn, const unsigned char *der, size_t len)
{ {
const unsigned char *oder; const unsigned char *oder;
int i; size_t j;
int i, extsz;
X509 *x = NULL; X509 *x = NULL;
X509_EXTENSION *ext = NULL; X509_EXTENSION *ext = NULL;
const X509_ALGOR *palg; const X509_ALGOR *palg;
@ -808,8 +809,12 @@ cert_parse_pre(const char *fn, const unsigned char *der, size_t len)
goto out; goto out;
/* Look for X509v3 extensions. */ /* Look for X509v3 extensions. */
if ((extsz = X509_get_ext_count(x)) <= 0) {
warnx("%s: certificate without X.509v3 extensions", fn);
goto out;
}
for (i = 0; i < X509_get_ext_count(x); i++) { for (i = 0; i < extsz; i++) {
ext = X509_get_ext(x, i); ext = X509_get_ext(x, i);
assert(ext != NULL); assert(ext != NULL);
obj = X509_EXTENSION_get_object(ext); obj = X509_EXTENSION_get_object(ext);
@ -938,8 +943,8 @@ cert_parse_pre(const char *fn, const unsigned char *der, size_t len)
p.fn); p.fn);
goto out; goto out;
} }
for (i = 0; (size_t)i < p.res->asz; i++) { for (j = 0; j < p.res->asz; j++) {
if (p.res->as[i].type == CERT_AS_INHERIT) { if (p.res->as[j].type == CERT_AS_INHERIT) {
warnx("%s: inherit elements not allowed in EE" warnx("%s: inherit elements not allowed in EE"
" cert", p.fn); " cert", p.fn);
goto out; goto out;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: mft.c,v 1.104 2024/02/03 14:30:47 job Exp $ */ /* $OpenBSD: mft.c,v 1.105 2024/02/04 00:53:27 job Exp $ */
/* /*
* Copyright (c) 2022 Theo Buehler <tb@openbsd.org> * Copyright (c) 2022 Theo Buehler <tb@openbsd.org>
* Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv>
@ -89,58 +89,6 @@ IMPLEMENT_ASN1_FUNCTIONS(Manifest);
#define GENTIME_LENGTH 15 #define GENTIME_LENGTH 15
/*
* Convert an ASN1_GENERALIZEDTIME to a struct tm.
* Returns 1 on success, 0 on failure.
*/
static int
generalizedtime_to_tm(const ASN1_GENERALIZEDTIME *gtime, struct tm *tm)
{
/*
* ASN1_GENERALIZEDTIME is another name for ASN1_STRING. Check type and
* length, so we don't accidentally accept a UTCTime. Punt on checking
* Zulu time for OpenSSL: we don't want to mess about with silly flags.
*/
if (ASN1_STRING_type(gtime) != V_ASN1_GENERALIZEDTIME)
return 0;
if (ASN1_STRING_length(gtime) != GENTIME_LENGTH)
return 0;
memset(tm, 0, sizeof(*tm));
return ASN1_TIME_to_tm(gtime, tm);
}
/*
* Validate and verify the time validity of the mft.
* Returns 1 if all is good and for any other case 0.
*/
static int
mft_parse_time(const ASN1_GENERALIZEDTIME *from,
const ASN1_GENERALIZEDTIME *until, struct parse *p)
{
struct tm tm_from, tm_until;
if (!generalizedtime_to_tm(from, &tm_from)) {
warnx("%s: embedded from time format invalid", p->fn);
return 0;
}
if (!generalizedtime_to_tm(until, &tm_until)) {
warnx("%s: embedded until time format invalid", p->fn);
return 0;
}
if ((p->res->thisupdate = timegm(&tm_from)) == -1 ||
(p->res->nextupdate = timegm(&tm_until)) == -1)
errx(1, "%s: timegm failed", p->fn);
if (p->res->thisupdate > p->res->nextupdate) {
warnx("%s: bad update interval", p->fn);
return 0;
}
return 1;
}
/* /*
* Determine rtype corresponding to file extension. Returns RTYPE_INVALID * Determine rtype corresponding to file extension. Returns RTYPE_INVALID
* on error or unkown extension. * on error or unkown extension.
@ -301,8 +249,32 @@ mft_parse_econtent(const unsigned char *d, size_t dsz, struct parse *p)
if (p->res->seqnum == NULL) if (p->res->seqnum == NULL)
goto out; goto out;
if (!mft_parse_time(mft->thisUpdate, mft->nextUpdate, p)) /*
* OpenSSL's DER decoder implementation will accept a GeneralizedTime
* which doesn't conform to RFC 5280. So, double check.
*/
if (ASN1_STRING_length(mft->thisUpdate) != GENTIME_LENGTH) {
warnx("%s: embedded from time format invalid", p->fn);
goto out; goto out;
}
if (ASN1_STRING_length(mft->nextUpdate) != GENTIME_LENGTH) {
warnx("%s: embedded until time format invalid", p->fn);
goto out;
}
if (!x509_get_time(mft->thisUpdate, &p->res->thisupdate)) {
warn("%s: parsing manifest thisUpdate failed", p->fn);
goto out;
}
if (!x509_get_time(mft->nextUpdate, &p->res->nextupdate)) {
warn("%s: parsing manifest nextUpdate failed", p->fn);
goto out;
}
if (p->res->thisupdate > p->res->nextupdate) {
warnx("%s: bad update interval", p->fn);
goto out;
}
if (OBJ_obj2nid(mft->fileHashAlg) != NID_sha256) { if (OBJ_obj2nid(mft->fileHashAlg) != NID_sha256) {
warnx("%s: RFC 6486 section 4.2.1: fileHashAlg: " warnx("%s: RFC 6486 section 4.2.1: fileHashAlg: "

View file

@ -1,4 +1,4 @@
/* $OpenBSD: fw_cfg.c,v 1.7 2023/02/06 20:33:34 dv Exp $ */ /* $OpenBSD: fw_cfg.c,v 1.8 2024/02/04 14:53:12 dv Exp $ */
/* /*
* Copyright (c) 2018 Claudio Jeker <claudio@openbsd.org> * Copyright (c) 2018 Claudio Jeker <claudio@openbsd.org>
* *
@ -396,7 +396,7 @@ fw_cfg_add_file(const char *name, const void *data, size_t len)
if (fw_cfg_lookup_file(name)) if (fw_cfg_lookup_file(name))
fatalx("%s: fw_cfg: file %s exists", __progname, name); fatalx("%s: fw_cfg: file %s exists", __progname, name);
if ((f = calloc(sizeof(*f), 1)) == NULL) if ((f = calloc(1, sizeof(*f))) == NULL)
fatal("%s", __func__); fatal("%s", __func__);
if ((f->data = malloc(len)) == NULL) if ((f->data = malloc(len)) == NULL)

View file

@ -1,4 +1,4 @@
/* $OpenBSD: vioblk.c,v 1.10 2024/02/03 00:28:07 jsg Exp $ */ /* $OpenBSD: vioblk.c,v 1.11 2024/02/04 14:54:51 dv Exp $ */
/* /*
* Copyright (c) 2023 Dave Voutila <dv@openbsd.org> * Copyright (c) 2023 Dave Voutila <dv@openbsd.org>
@ -301,7 +301,7 @@ vioblk_notifyq(struct vioblk_dev *dev)
uint8_t ds; uint8_t ds;
off_t offset; off_t offset;
ssize_t sz; ssize_t sz;
int is_write, notify, i; int is_write, notify = 0, i;
char *vr; char *vr;
struct vring_desc *table, *desc; struct vring_desc *table, *desc;
struct vring_avail *avail; struct vring_avail *avail;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: vmd.c,v 1.153 2024/01/18 14:49:59 claudio Exp $ */ /* $OpenBSD: vmd.c,v 1.154 2024/02/04 14:56:45 dv Exp $ */
/* /*
* Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org> * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
@ -527,8 +527,7 @@ vmd_dispatch_vmm(int fd, struct privsep_proc *p, struct imsg *imsg)
imsg->hdr.peerid == IMSG_AGENTX_PEERID ? imsg->hdr.peerid == IMSG_AGENTX_PEERID ?
PROC_AGENTX : PROC_CONTROL, -1, imsg->hdr.type, PROC_AGENTX : PROC_CONTROL, -1, imsg->hdr.type,
imsg->hdr.peerid, -1, &vir, sizeof(vir)) == -1) { imsg->hdr.peerid, -1, &vir, sizeof(vir)) == -1) {
log_debug("%s: GET_INFO_VM failed for vm %d, removing", if (vm)
__func__, vm->vm_vmid);
vm_terminate(vm, __func__); vm_terminate(vm, __func__);
return (-1); return (-1);
} }

View file

@ -1,4 +1,4 @@
/* $OpenBSD: vmm.c,v 1.117 2024/01/18 14:49:59 claudio Exp $ */ /* $OpenBSD: vmm.c,v 1.118 2024/02/04 14:57:00 dv Exp $ */
/* /*
* Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org> * Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
@ -650,8 +650,7 @@ vmm_start_vm(struct imsg *imsg, uint32_t *id, pid_t *pid)
if ((vm = vm_getbyvmid(imsg->hdr.peerid)) == NULL) { if ((vm = vm_getbyvmid(imsg->hdr.peerid)) == NULL) {
log_warnx("%s: can't find vm", __func__); log_warnx("%s: can't find vm", __func__);
ret = ENOENT; return (ENOENT);
goto err;
} }
vcp = &vm->vm_params.vmc_params; vcp = &vm->vm_params.vmc_params;
@ -747,7 +746,6 @@ vmm_start_vm(struct imsg *imsg, uint32_t *id, pid_t *pid)
if (vmm_pipe(vm, fds[0], vmm_dispatch_vm) == -1) if (vmm_pipe(vm, fds[0], vmm_dispatch_vm) == -1)
fatal("setup vm pipe"); fatal("setup vm pipe");
return (0);
} else { } else {
/* Child. Create a new session. */ /* Child. Create a new session. */
if (setsid() == -1) if (setsid() == -1)