Commit Graph

293948 Commits

Author SHA1 Message Date
rillig 75d4a53089 tests/make: test line numbers in debug output for parsing files 2022-01-08 22:13:43 +00:00
rillig e72b1cbbbd make: return early from SkipIrrelevantBranches
No functional change.
2022-01-08 21:28:59 +00:00
rillig 577ef4e8d4 make: fix reported line numbers of continuation lines (since 2002)
Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual.  This also affected the debug log from '-dp'.
2022-01-08 20:21:34 +00:00
riastradh 03dbe12f0c urlphy(4): Fix missing mii locking in urlphy_attach. 2022-01-08 17:35:05 +00:00
riastradh 9e7478ebaa ukbd(4): Fix previous change to initial LED flashing.
Without this change the LEDs would get stuck on until the first
keypress.  (This also seemed to trigger a crash in heavy load on
bringing aue(4) up and down over and over again while unplugging, but
I'm not sure why and I hope it's not actually related...)
2022-01-08 17:34:14 +00:00
rillig 6da1a2e842 make: inline Buf_Clear
No functional change.
2022-01-08 17:25:19 +00:00
christos a42fbaa6e0 fix emips 2022-01-08 14:28:14 +00:00
tnn fd278dcbfe place additional parens around multiline string constant to appease clang 2022-01-08 12:59:34 +00:00
rillig 6403aeb99b make: rename is_shell_metachar, fix character conversion warning
No binary change.
2022-01-08 11:04:13 +00:00
rillig 33dd019cb6 tests/make: demonstrate edge case in parsing .for loops 2022-01-08 10:22:03 +00:00
rillig 94e9601469 make: constify UnescapeBackslash, fix typo in comment
No binary change.
2022-01-08 09:55:32 +00:00
rillig 93211f8ca3 make: remove redundant braces
No binary change, except for assertion line numbers.
2022-01-08 09:53:44 +00:00
skrll 09fbbfa869 defflag FCOM_INIT_ARM 2022-01-08 09:02:47 +00:00
skrll 516df7a6bb KNF 2022-01-08 09:01:00 +00:00
skrll e2a0845057 Make VERBOSE_ARM32 compile again and reduce #ifdefs while I'm here 2022-01-08 09:00:23 +00:00
skrll 72735ed0c4 Attempt to fix emips build 2022-01-08 08:40:19 +00:00
lukem 41d92dcdfa postinstall: add -?. improve option errors
Support -? to show help.
Implemented using getopts "leading colon optstring" feature.
Improve error messages for unknown options and missing arguments.
2022-01-08 06:58:40 +00:00
lukem ae7cd0c965 postinstall: usage improvements
Show options alphabetically.
Use UPPER_CASE instead of lowercase as the convention for argument names.
Provide per-OPERATION argument usage.
Implement options alphabetically.
2022-01-08 06:57:34 +00:00
lukem bbb43df076 postinstall: improve validation and help
Validate the operation and items before extracting any etc.tgz,
so that help or errors are displayed quicker, for a better user
experience.

Style:
- Rename todo to ITEMS.
- Order processing of list after check.
- Ensure DIFF_OPT is initialised, for consistency.
2022-01-08 06:56:43 +00:00
lukem b318894e7e postinstall: style tweaks
Fix ... in comments and internal errors.
Sort variables declared at top of main(), for easier review.
2022-01-08 06:55:13 +00:00
lukem f4a06ed268 postinstall: help to stdout. usage tweaks
When invoked as "help" or "usage", send the usage to stdout
instead of stderr, so that it's easier to pipe to a pager.

Explicitly warn that the operation is missing.

Tweak the usage; "operation" instead of "op", no need for [] around ...
2022-01-08 06:53:58 +00:00
pgoyette be1f2c719a Use += for SRCS list 2022-01-08 02:00:49 +00:00
pgoyette c8c2d0fce9 Remove extra blank line 2022-01-08 01:58:16 +00:00
pgoyette 80c3d1e53d Use \t for pre-comment white-space 2022-01-08 01:50:54 +00:00
rillig 5f7b57b18a make: clean up structure of For_Eval
Put related decisions on the same indentation level, remove unnecessary
negation, keep the code for the '.for' directive together.

No functional change.
2022-01-07 23:13:50 +00:00
andvar 000f65416a s/udpate/update/ 2022-01-07 22:59:32 +00:00
rillig d4e6a81fff make: remove redundant condition in ParseRawLine
The input buffer is guaranteed to be terminated by '\n'.  This means
that after a '\\', there is no need to check for the end of that buffer.

While here, condense ReadLowLevelLine.

No functional change.
2022-01-07 22:08:09 +00:00
rillig 5e5304ee7e make: rename local variable in ParseRawLine
The previous variable name suggested that the variable would point to
the first '#' character of the line, instead it points to the whitespace
before the first '#'.

No functional change.
2022-01-07 21:57:26 +00:00
rillig a2a1ebf149 make: condense UnescapeBackslash
No functional change.
2022-01-07 21:40:56 +00:00
rillig b6944f8804 make: in loadfile, use simpler magic numbers
No functional change.
2022-01-07 21:04:50 +00:00
rillig 99e2f0ba08 make: have as few statements as possible between va_start and va_end
No functional change.
2022-01-07 21:00:49 +00:00
rillig bccb6308ed make: remove redundant function parameter in suffix handling
Now that mainNode is globally visible, there is no need to pass it
through function parameters.

No functional change.
2022-01-07 20:54:45 +00:00
rillig 68291d4356 make: merge duplicate variables for the main target
No functional change.
2022-01-07 20:50:35 +00:00
rillig 41d6d049a6 make: clean up comments, variable names, function names
The comment in ApplyDependencySourceOther repeated the code, its second
half didn't match any current code.

The comment above ParseDependencySourcesEmpty repeated the code.

No binary change, except for assertion line numbers.
2022-01-07 20:37:25 +00:00
rillig 897a695314 make: clean up handling of .for loops
Sort ForLoop members in natural reading order.

Remove redundant condition in ForLoop_ParseItems; at that point, the
number of variables is non-zero.

Rename Buf_AddEscaped since that function is not part of the Buffer API,
it is specific to .for loops.

No functional change.
2022-01-07 20:15:10 +00:00
rillig 9053a08fe0 make: eliminate file-scope variable forLevel
No functional change.
2022-01-07 20:09:58 +00:00
rillig d8d5dfa77e make: use simpler code for handling .for loops
Since the body of a .for loop is scanned from start to end, there is no
need to remember the length of a variable name.

Using memcmp for comparing the variable name was probably overkill since
the variable names are usually very short, so rather compare them byte
by byte.

No functional change.
2022-01-07 20:04:49 +00:00
rillig 596c2276c5 tests/make: fix documentation in cond-func.mk 2022-01-07 19:30:17 +00:00
rillig fa9a5efd89 make: rename and inline Targ_Precious
No functional change.
2022-01-07 19:24:27 +00:00
nia 71e4ddc293 Update Advent Sunday date to 2022 2022-01-07 16:51:25 +00:00
christos 33e7e30822 new OpenSSL 2022-01-07 15:51:42 +00:00
christos fb48e4b201 merge conflicts between openssl-1-1-1k and openssl-1-1-1m 2022-01-07 15:50:10 +00:00
christos 21497c5c4b Changes between 1.1.1l and 1.1.1m [14 Dec 2021]
*) Avoid loading of a dynamic engine twice.
[Bernd Edlinger]

*) Fixed building on Debian with kfreebsd kernels
[Mattias Ellert]

*) Prioritise DANE TLSA issuer certs over peer certs
[Viktor Dukhovni]

*) Fixed random API for MacOS prior to 10.12
These MacOS versions don't support the CommonCrypto APIs
[Lenny Primak]

Changes between 1.1.1k and 1.1.1l [24 Aug 2021]

*) Fixed an SM2 Decryption Buffer Overflow.

In order to decrypt SM2 encrypted data an application is expected
to call the API function EVP_PKEY_decrypt(). Typically an application
will call this function twice. The first time, on entry, the "out"
parameter can be NULL and, on exit, the "outlen" parameter is
populated with the buffer size required to hold the decrypted
plaintext. The application can then allocate a sufficiently sized
buffer and call EVP_PKEY_decrypt() again, but this time passing
a non-NULL value for the "out" parameter.

A bug in the implementation of the SM2 decryption code means that
the calculation of the buffer size required to hold the plaintext
returned by the first call to EVP_PKEY_decrypt() can be smaller
than the actual size required by the second call. This can lead to
a buffer overflow when EVP_PKEY_decrypt() is called by the application
a second time with a buffer that is too small.

A malicious attacker who is able present SM2 content for decryption
to an application could cause attacker chosen data to overflow the
buffer by up to a maximum of 62 bytes altering the contents of
other data held after the buffer, possibly changing application
behaviour or causing the application to crash. The location of the
buffer is application dependent but is typically heap allocated.
(CVE-2021-3711)
[Matt Caswell]

*) Fixed various read buffer overruns processing ASN.1 strings

ASN.1 strings are represented internally within OpenSSL as an
ASN1_STRING structure which contains a buffer holding the string
data and a field holding the buffer length. This contrasts with
normal C strings which are repesented as a buffer for the string
data which is terminated with a NUL (0) byte.

Although not a strict requirement, ASN.1 strings that are parsed
using OpenSSL's own "d2i" functions (and other similar parsing
functions) as well as any string whose value has been set with the
ASN1_STRING_set() function will additionally NUL terminate the byte
array in the ASN1_STRING structure.

However, it is possible for applications to directly construct
valid ASN1_STRING structures which do not NUL terminate the byte
array by directly setting the "data" and "length" fields in the
ASN1_STRING array. This can also happen by using the ASN1_STRING_set0()
function.

Numerous OpenSSL functions that print ASN.1 data have been found
to assume that the ASN1_STRING byte array will be NUL terminated,
even though this is not guaranteed for strings that have been
directly constructed. Where an application requests an ASN.1
structure to be printed, and where that ASN.1 structure contains
ASN1_STRINGs that have been directly constructed by the application
without NUL terminating the "data" field, then a read buffer overrun
can occur.

The same thing can also occur during name constraints processing
of certificates (for example if a certificate has been directly
constructed by the application instead of loading it via the OpenSSL
parsing functions, and the certificate contains non NUL terminated
ASN1_STRING structures). It can also occur in the X509_get1_email(),
X509_REQ_get1_email() and X509_get1_ocsp() functions.

If a malicious actor can cause an application to directly construct
an ASN1_STRING and then process it through one of the affected
OpenSSL functions then this issue could be hit. This might result
in a crash (causing a Denial of Service attack). It could also
result in the disclosure of private memory contents (such as private
keys, or sensitive plaintext).
(CVE-2021-3712)
[Matt Caswell]
2022-01-07 15:46:01 +00:00
rillig 0a69dfa9c9 make: clean up comments and names in parse.c
No binary change except for assertion line numbers.
2022-01-07 14:03:55 +00:00
rillig 13ac08f1cf make: rename IFile and its fields to match their actual content
For lines that use backslash continuation, the human-readable line
number does not equal the number of raw lines that have been read from
the file.

The big comment in PrintStackTrace has become outdated, it still
referred to first_lineno.  Due to the bugs documented in
opt-debug-parse.mk, that function needs to be redone completely.

No functional change.
2022-01-07 13:56:09 +00:00
rillig d1d0ae7f4e make: merge calls to ApplyModifier_Time
This enables GCC 11 to inline ApplyModifier_Time, like all the other
modifiers.  Similar pattern as for ':M' and ':N', as well as for ':D'
and ':U'.

No functional change.
2022-01-07 12:44:57 +00:00
rillig f42040f836 make: merge duplicate code for modifiers 'gmtime' and 'localtime'
No functional change.
2022-01-07 12:37:27 +00:00
rillig 55ad9d7f7a make: clean up variable modifiers 'gmtime' and 'localtime'
Use consistent wording (zulu -> gmt), make VarStrftime parameter order
consistent with strftime, rename confusing 'time_t utc' to 't',
eliminate common subexpression in error message.

No functional change.
2022-01-07 12:33:25 +00:00
bad 83f02db3da mention ifmcstat(8) in SEE ALSO. 2022-01-07 10:17:39 +00:00
rillig 48b9dbe103 make: clean up ParseDependencySources
It is not necessary anymore to modify the passed-in line.  It had been
necessary when the parsing function was several hundred lines long, to
avoid gotos.

No functional change.
2022-01-07 09:49:43 +00:00