forked from KolibriOS/kolibrios
libimg: img.decode now checks that length is not null
WebView: img tag: proceed data-src= if src= is empty, fix crash git-svn-id: svn://kolibrios.org@8363 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7c5089302e
commit
5d3b2a031a
@ -452,13 +452,14 @@ void TWebBrowser::SetStyle() {
|
|||||||
}
|
}
|
||||||
if (tag.is("img")) {
|
if (tag.is("img")) {
|
||||||
value = tag.get_value_of("src=");
|
value = tag.get_value_of("src=");
|
||||||
|
if (!value) value = tag.get_value_of("data-src=");
|
||||||
if (!value) goto NOIMG;
|
if (!value) goto NOIMG;
|
||||||
|
|
||||||
strlcpy(#img_path, value, sizeof(img_path)-1);
|
strlcpy(#img_path, value, sizeof(img_path)-1);
|
||||||
get_absolute_url(#img_path, history.current());
|
get_absolute_url(#img_path, history.current());
|
||||||
|
|
||||||
//if (check_is_the_adress_local(#img_path)) <== load local files
|
//if (check_is_the_adress_local(#img_path)) <== load local files
|
||||||
if (cache.has(#img_path))
|
if (cache.has(#img_path)) && (cache.current_size)
|
||||||
{
|
{
|
||||||
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
||||||
if (!EAX) goto NOIMG;
|
if (!EAX) goto NOIMG;
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
// DATA //
|
// DATA //
|
||||||
// //
|
// //
|
||||||
//===================================================//
|
//===================================================//
|
||||||
char version[]="WebView 2.8 BETA 4";
|
char version[]="WebView 2.8 BETA 5";
|
||||||
|
|
||||||
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
||||||
|
|
||||||
|
@ -720,6 +720,9 @@ proc img.decode _data, _length, _options ;//////////////////////////////////////
|
|||||||
;< eax = 0 / pointer to image ;;
|
;< eax = 0 / pointer to image ;;
|
||||||
;;================================================================================================;;
|
;;================================================================================================;;
|
||||||
push ebx
|
push ebx
|
||||||
|
mov ebx, [_length]
|
||||||
|
or ebx,ebx
|
||||||
|
jz .fail
|
||||||
mov ebx, img.formats_table
|
mov ebx, img.formats_table
|
||||||
@@: stdcall [ebx + FormatsTableEntry.Is], [_data], [_length]
|
@@: stdcall [ebx + FormatsTableEntry.Is], [_data], [_length]
|
||||||
or eax, eax
|
or eax, eax
|
||||||
@ -727,6 +730,8 @@ proc img.decode _data, _length, _options ;//////////////////////////////////////
|
|||||||
add ebx, sizeof.FormatsTableEntry
|
add ebx, sizeof.FormatsTableEntry
|
||||||
cmp dword[ebx], eax ;0
|
cmp dword[ebx], eax ;0
|
||||||
jnz @b
|
jnz @b
|
||||||
|
.fail:
|
||||||
|
xor eax, eax
|
||||||
pop ebx
|
pop ebx
|
||||||
ret
|
ret
|
||||||
@@: mov eax, [ebx + FormatsTableEntry.Decode]
|
@@: mov eax, [ebx + FormatsTableEntry.Decode]
|
||||||
|
Loading…
Reference in New Issue
Block a user