History log of /netbsd-src/usr.bin/make/make_malloc.c (Results 1 – 25 of 26)
Revision Date Author Comments
# 399f66b1 07-Jan-2022 rillig <rillig@NetBSD.org>

make: rename local variable in bmake_malloc

The length of a string does not include the trailing '\0'.

No binary change.


# 85aee7a6 19-Jan-2021 rillig <rillig@NetBSD.org>

make(1): remove do-not-format markers from comments

These markers had been used inconsistently. Furthermore the source code
had not been formatted automatically before 2020 at all, otherwise there

make(1): remove do-not-format markers from comments

These markers had been used inconsistently. Furthermore the source code
had not been formatted automatically before 2020 at all, otherwise there
wouldn't have been any trailing whitespace left.

show more ...


# 4d2ba079 07-Dec-2020 rillig <rillig@NetBSD.org>

make(1): remove duplicate code from bmake_strdup

Inlining is the job of the compiler, not of humans.


# f336e55b 05-Oct-2020 rillig <rillig@NetBSD.org>

make(1): revert previous commit

It had accidentally reverted all the work from the past few days.


# b6c0384f 05-Oct-2020 rillig <rillig@NetBSD.org>

make(1): fix double-free bug in -DCLEANUP mode (since 2020-10-02)

The bug had been introduced with dir.c 1.155 on 2020-10-02 22:20:25. In
that commit, openDirectories was replaced with a combinatio

make(1): fix double-free bug in -DCLEANUP mode (since 2020-10-02)

The bug had been introduced with dir.c 1.155 on 2020-10-02 22:20:25. In
that commit, openDirectories was replaced with a combination of a list
with a hash table, for more efficient lookup by name.

Upon cleanup, OpenDirs_Done is called, which in turn called
Dir_ClearPath. Dir_ClearPath takes full ownership of the given list and
empties it. This was no problem before since afterwards the list was
empty and calling Lst_Free just frees the remaining list pointer.

With OpenDirs, this list was combined with a hash table, and the hash
table contains the list nodes, assuming that the OpenDirs functions have
full ownership of both the list and the hash table. This assumption was
generally correct, except for the one moment during cleanup where full
ownership of the list was passed to Dir_ClearPath, while the hash table
still contained pointers to the (now freed) list nodes. This by itself
was not a problem since the hash table would be freed afterwards. But
as part of Dir_ClearPath, OpenDirs_Remove was called, which looked up
the freed directory by name and now found the freed list node, trying to
free it again. Boom.

Fixed by replacing the call to Dir_ClearPath with code that only frees
the directories, without giving up control over the list.

show more ...


# 052e64b5 03-Oct-2020 rillig <rillig@NetBSD.org>

make(1): clean up #include sections


# ef0b5be0 01-Oct-2020 rillig <rillig@NetBSD.org>

make(1): remove redundant function prototypes


# 6de75a95 13-Sep-2020 rillig <rillig@NetBSD.org>

make(1): clean up RCSID blocks

These blocks mostly consisted of redundant structure, following the same
#ifndef pattern over and over, with only minimal variation.

It's easier to maintain if the co

make(1): clean up RCSID blocks

These blocks mostly consisted of redundant structure, following the same
#ifndef pattern over and over, with only minimal variation.

It's easier to maintain if the common structure is only written once and
encapsulated in a macro.

To avoid "defined but unused" warnings from GCC in the case where
MAKE_NATIVE is not defined, I had to add volatile. Adding
MAKE_ATTR_UNUSED alone would not preserve the rcsid variable in the
resulting binary.

show more ...


# 09d92712 02-Sep-2020 rillig <rillig@NetBSD.org>

make(1): remove redundancy from comments in make_malloc.c


# 64e0a331 29-Aug-2020 rillig <rillig@NetBSD.org>

make(1): fix build with -DUSE_EMALLOC


# 23181bcc 29-Aug-2020 rillig <rillig@NetBSD.org>

make(1): add bmake_strsedup for duplicating a substring


# 0cbd5c0e 20-Aug-2020 rillig <rillig@NetBSD.org>

make(1): remove unreached code from bmake_strndup

The "at most" branch was never taken since all call sites in var.c only
ever need a substring, and the target buffer is not limited. Therefore
rena

make(1): remove unreached code from bmake_strndup

The "at most" branch was never taken since all call sites in var.c only
ever need a substring, and the target buffer is not limited. Therefore
rename the function and make it simpler.

It's ok that bmake_strldup is defined as estrndup in case of USE_EMALLOC
since that function's implementation is compatible to the "copy
exactly", it just contains some extra null checks that will never match
since the variable values cannot (well, or should not) contain null
bytes. Theoretically they can, but the behavior then depends on the
exact implementation and is unreliable, therefore nobody does this.
After all, Makefiles are used for text processing, not for binary data.

show more ...


# ee1eefc8 12-Aug-2020 rillig <rillig@NetBSD.org>

make(1): remove unnecessary test from bmake_strndup

The passed memory is never NULL.


# 0fc5d0f7 12-Aug-2020 rillig <rillig@NetBSD.org>

make(1): in bmake_strndup, only scan the relevant part of the string

Just in case the given str is not really a string.

The POSIX 2018 documentation on strndup does not specify as clearly as
possib

make(1): in bmake_strndup, only scan the relevant part of the string

Just in case the given str is not really a string.

The POSIX 2018 documentation on strndup does not specify as clearly as
possible whether s has to be a string or whether raw memory is
acceptable as well. It only indirectly calls the s parameter of strndup
a string.

show more ...


# 44d841d2 03-Jul-2020 rillig <rillig@NetBSD.org>

make(1): remove redundant parentheses around return values


# 3e81c534 16-Apr-2017 dholland <dholland@NetBSD.org>

nowadays function specifiers go in declaration_specifiers
(not after the declarator)


# e47157f5 20-Jun-2012 sjg <sjg@NetBSD.org>

Do not include make_malloc.h or declare progname,
both are already done in make.h


# b1e1b1d4 12-Jun-2012 joerg <joerg@NetBSD.org>

Replace __dead, __unused and the various printf format attributes
with versions prefixed by MAKE_ATTR_* to avoid modifying the
implementation namespace. Make sure they are available in all places
usi

Replace __dead, __unused and the various printf format attributes
with versions prefixed by MAKE_ATTR_* to avoid modifying the
implementation namespace. Make sure they are available in all places
using nonints.h to fix bootstrap on Linux.

show more ...


# 8e7413b1 10-Jun-2012 wiz <wiz@NetBSD.org>

Declare enomem __dead for clang.


# 35fdcec3 18-May-2012 sjg <sjg@NetBSD.org>

Avoid nested extern declaration warnings


# f8d6aa2c 25-Dec-2010 dholland <dholland@NetBSD.org>

Many C libraries don't set errno when malloc fails, so always use
strerror(ENOMEM).


# b294f6c2 24-Jan-2009 dsl <dsl@NetBSD.org>

Fix sense of MAKE_NATICE test.


# 4802ea58 24-Jan-2009 dsl <dsl@NetBSD.org>

Add #ifndef MAKE_NATIVE around __RCSID


# 97347d2c 24-Jan-2009 dsl <dsl@NetBSD.org>

Fixes to includes of make_malloc.h to that it actually builds when
USE_EMALLOC is undefined.
Fixes earlier fixes :-)


# 9fde1a67 24-Jan-2009 cegger <cegger@NetBSD.org>

buildfixes for OSX:
- include <sys/types> for size_t
- progname is undeclared
- include <string.h> for string functions like strlen()
- include <errno.h> for errno


12