mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 11:11:08 +00:00
typefindhelper: Fix overflow some more
Nothing guaranteed that off+size wouldn't exceed a 2**64 value. Instead we reverse the operation and use a subtraction.
This commit is contained in:
parent
4ccdad084b
commit
40187f9247
1 changed files with 9 additions and 1 deletions
|
@ -446,7 +446,15 @@ buf_helper_find_peek (gpointer data, gint64 off, guint size)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((guint64) off + size) <= helper->size)
|
/* If we request beyond the available size, we're sure we can't return
|
||||||
|
* anything regardless of the requested offset */
|
||||||
|
if (size > helper->size)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
/* Only return data if there's enough room left for the given offset.
|
||||||
|
* This is the same as "if (off + size <= helper->size)" except that
|
||||||
|
* it doesn't exceed type limits */
|
||||||
|
if (off <= helper->size - size)
|
||||||
return helper->data + off;
|
return helper->data + off;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in a new issue