mirror of
git://slackware.nl/current.git
synced 2024-12-31 10:28:29 +01:00
38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
|
From bc3aaf4223fdb70d52d470dae65c5a7923ea2a49 Mon Sep 17 00:00:00 2001
|
||
|
From: Alex Tutubalin <lexa@lexa.ru>
|
||
|
Date: Mon, 12 Apr 2021 13:21:52 +0300
|
||
|
Subject: [PATCH] check for input buffer size on datastream::gets
|
||
|
|
||
|
---
|
||
|
src/libraw_datastream.cpp | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
diff --git a/src/libraw_datastream.cpp b/src/libraw_datastream.cpp
|
||
|
index a5c1a84a..a31ae9dd 100644
|
||
|
--- a/src/libraw_datastream.cpp
|
||
|
+++ b/src/libraw_datastream.cpp
|
||
|
@@ -287,6 +287,7 @@ INT64 LibRaw_file_datastream::tell()
|
||
|
|
||
|
char *LibRaw_file_datastream::gets(char *str, int sz)
|
||
|
{
|
||
|
+ if(sz<1) return NULL;
|
||
|
LR_STREAM_CHK();
|
||
|
std::istream is(f.get());
|
||
|
is.getline(str, sz);
|
||
|
@@ -421,6 +422,7 @@ INT64 LibRaw_buffer_datastream::tell()
|
||
|
|
||
|
char *LibRaw_buffer_datastream::gets(char *s, int sz)
|
||
|
{
|
||
|
+ if(sz<1) return NULL;
|
||
|
unsigned char *psrc, *pdest, *str;
|
||
|
str = (unsigned char *)s;
|
||
|
psrc = buf + streampos;
|
||
|
@@ -618,6 +620,7 @@ INT64 LibRaw_bigfile_datastream::tell()
|
||
|
|
||
|
char *LibRaw_bigfile_datastream::gets(char *str, int sz)
|
||
|
{
|
||
|
+ if(sz<1) return NULL;
|
||
|
LR_BF_CHK();
|
||
|
return fgets(str, sz, f);
|
||
|
}
|