Fix potential heap buffer overflow in hdfs.c. Contributed by Igor Chervatyuk.
(cherry picked from commit 4972e7a246
)
This commit is contained in:
parent
b98a8d259b
commit
78c5fdd90d
|
@ -945,9 +945,14 @@ struct hdfsStreamBuilder {
|
||||||
struct hdfsStreamBuilder *hdfsStreamBuilderAlloc(hdfsFS fs,
|
struct hdfsStreamBuilder *hdfsStreamBuilderAlloc(hdfsFS fs,
|
||||||
const char *path, int flags)
|
const char *path, int flags)
|
||||||
{
|
{
|
||||||
int path_len = strlen(path);
|
size_t path_len = strlen(path);
|
||||||
struct hdfsStreamBuilder *bld;
|
struct hdfsStreamBuilder *bld;
|
||||||
|
|
||||||
|
// Check for overflow in path_len
|
||||||
|
if (path_len > SIZE_MAX - sizeof(struct hdfsStreamBuilder)) {
|
||||||
|
errno = EOVERFLOW;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
// sizeof(hdfsStreamBuilder->path) includes one byte for the string
|
// sizeof(hdfsStreamBuilder->path) includes one byte for the string
|
||||||
// terminator
|
// terminator
|
||||||
bld = malloc(sizeof(struct hdfsStreamBuilder) + path_len);
|
bld = malloc(sizeof(struct hdfsStreamBuilder) + path_len);
|
||||||
|
|
Loading…
Reference in New Issue