rocksdb/port
Johnny Shaw c2dc4c0c52 Fix GetWindowsErrSz nullptr bug (#10282)
Summary:
`GetWindowsErrSz` may assign a `nullptr` to `std::string` in the event it cannot format the error code to a string. This will result in a crash when `std::string` attempts to calculate the length from `nullptr`.

The change here checks the output from `FormatMessageA` and only assigns to the otuput `std::string` if it is not null. Additionally, the call to free the buffer is only made if a non-null value is returned from `FormatMessageA`. In the event `FormatMessageA` does not output a string, an empty string is returned instead.

Fixes https://github.com/facebook/rocksdb/issues/10274

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10282

Reviewed By: riversand963

Differential Revision: D37542143

Pulled By: ajkr

fbshipit-source-id: c21f5119ddb451f76960acec94639d0f538052f2
2022-06-29 20:41:54 -07:00
..
win Fix GetWindowsErrSz nullptr bug (#10282) 2022-06-29 20:41:54 -07:00
README reverting disastrous MOE commit, returning to r21 2011-04-19 23:11:15 +00:00
jemalloc_helper.h jemalloc_helper: Limit the mm_malloc.h hack to glibc on linux (#8425) 2021-06-29 08:40:02 -07:00
lang.h Meta-internal folly integration with F14FastMap (#9546) 2022-04-13 07:34:01 -07:00
likely.h Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
malloc.h Charge block cache for cache internal usage (#5797) 2019-09-16 15:26:21 -07:00
port.h Change RocksDB License 2017-07-15 16:11:23 -07:00
port_dirent.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
port_example.h Replace most typedef with using= (#8751) 2021-09-07 11:31:59 -07:00
port_posix.cc Prevent deadlock in db_stress with DbStressCompactionFilter (#8956) 2021-09-24 16:54:02 -07:00
port_posix.h Use optimized folly DistributedMutex in LRUCache when available (#10179) 2022-06-17 13:08:45 -07:00
stack_trace.cc Standardize on GCC for TSAN conditional compilation (#8543) 2021-07-15 23:50:00 -07:00
stack_trace.h Fault injection in db_stress (#6538) 2020-04-10 17:21:26 -07:00
sys_time.h Fix potential ambiguities in/around port/sys_time.h (#10045) 2022-05-24 18:20:17 -07:00
util_logger.h Move some logging related files to logging/ (#5387) 2019-05-31 17:23:59 -07:00
xpress.h Change RocksDB License 2017-07-15 16:11:23 -07:00

README

This directory contains interfaces and implementations that isolate the
rest of the package from platform details.

Code in the rest of the package includes "port.h" from this directory.
"port.h" in turn includes a platform specific "port_<platform>.h" file
that provides the platform specific implementation.

See port_posix.h for an example of what must be provided in a platform
specific header file.