3 Commits
Author SHA1 Message Date
Alex ColomarandAlejandro Colomar f93361979a Avoided modifying existing directories at 'make install'.
'install -d' has an issue compared to 'mkdir -p':  it doesn't
respect existing directories.  It will set the ownership, file
mode, and SELinux contexts (and any other property that would be
set by install(1) to a newly-created directory), overwriting any
existing properties of the existing directory.

'mkdir -p' doesn't have this issue:  it is a no-op if the
directory exists.  However, it's not an ideal solution either,
since it can't be used to set the properties (owner, mode, ...) of
a newly-created directory.

Therefore, the best solution is to use install(1), but only after
making sure that the directory doesn't exist with test(1).

Reported-by: Andrew Clayton <a.clayton@nginx.com>
Reported-by: Alejandro Colomar <alx@nginx.com>
Closes: <https://github.com/nginx/unit/issues/769>
Signed-off-by: Alejandro Colomar <alx@nginx.com>
Tested-by: Andrew Clayton <a.clayton@nginx.com>
Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
2022-10-20 15:50:05 +02:00
Alex ColomarandAlejandro Colomar f2213dbd1b Added missing error checking in the C API.
pthread_mutex_init(3) may fail for several reasons, and failing to
check will cause Undefined Behavior when those errors happen.  Add
missing checks, and correctly deinitialize previously created
stuff before exiting from the API.

Signed-off-by: Alejandro Colomar <alx@nginx.com>
Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
Reviewed-by: Zhidao HONG <z.hong@f5.com>
2022-10-14 14:43:04 +02:00
Alex ColomarandAlejandro Colomar 558a5d3e89 Fixed a mutex leak in the C API.
In nxt_unit_create() we could leak a mutex created in
nxt_unit_ctx_init().

This could happen if nxt_unit_ctx_init() succeeded but later on we
bailed out of nxt_unit_create(), we would destroy the mutex created in
nxt_unit_create() but not the one created in nxt_unit_ctx_init().

Reorder things so that we do the call to nxt_unit_create() after all the
other checks so if it fails we don't leak the mutex it created.

Co-developed-by: Andrew Clayton <a.clayton@f5.com>
Signed-off-by: Andrew Clayton <a.clayton@f5.com>
Signed-off-by: Alex Colomar <a.colomar@f5.com>
2022-09-10 02:57:42 +02:00