Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
139
Merge Requests
139
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
c183f573
Commit
c183f573
authored
1 year ago
by
Jérome Perrin
Committed by
Arnaud Fontaine
7 months ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
patches/OFSImage: update monkey patch with Zope-4.8.9 version
parent
a712b2a4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
11 deletions
+15
-11
product/ERP5Type/patches/OFSImage.py
product/ERP5Type/patches/OFSImage.py
+15
-11
No files found.
product/ERP5Type/patches/OFSImage.py
View file @
c183f573
...
@@ -22,14 +22,14 @@ from io import BytesIO
...
@@ -22,14 +22,14 @@ from io import BytesIO
from
zExceptions
import
Forbidden
from
zExceptions
import
Forbidden
def
getImageInfo_with_svg_fix
(
data
):
def
getImageInfo_with_svg_fix
(
data
):
data
=
str
(
data
)
data
=
bytes
(
data
)
size
=
len
(
data
)
size
=
len
(
data
)
height
=
-
1
height
=
-
1
width
=
-
1
width
=
-
1
content_type
=
''
content_type
=
''
# handle GIFs
# handle GIFs
if
(
size
>=
10
)
and
data
[:
6
]
in
(
'GIF87a'
,
'GIF89a'
):
if
(
size
>=
10
)
and
data
[:
6
]
in
(
b'GIF87a'
,
b
'GIF89a'
):
# Check to see if content_type is correct
# Check to see if content_type is correct
content_type
=
'image/gif'
content_type
=
'image/gif'
w
,
h
=
struct
.
unpack
(
"<HH"
,
data
[
6
:
10
])
w
,
h
=
struct
.
unpack
(
"<HH"
,
data
[
6
:
10
])
...
@@ -39,15 +39,16 @@ def getImageInfo_with_svg_fix(data):
...
@@ -39,15 +39,16 @@ def getImageInfo_with_svg_fix(data):
# See PNG v1.2 spec (http://www.cdrom.com/pub/png/spec/)
# See PNG v1.2 spec (http://www.cdrom.com/pub/png/spec/)
# Bytes 0-7 are below, 4-byte chunk length, then 'IHDR'
# Bytes 0-7 are below, 4-byte chunk length, then 'IHDR'
# and finally the 4-byte width, height
# and finally the 4-byte width, height
elif
((
size
>=
24
)
and
(
data
[:
8
]
==
'
\
211
PNG
\
r
\
n
\
032
\
n
'
)
elif
(
size
>=
24
and
(
data
[
12
:
16
]
==
'IHDR'
)):
and
data
[:
8
]
==
b'
\
211
PNG
\
r
\
n
\
032
\
n
'
and
data
[
12
:
16
]
==
b'IHDR'
):
content_type
=
'image/png'
content_type
=
'image/png'
w
,
h
=
struct
.
unpack
(
">LL"
,
data
[
16
:
24
])
w
,
h
=
struct
.
unpack
(
">LL"
,
data
[
16
:
24
])
width
=
int
(
w
)
width
=
int
(
w
)
height
=
int
(
h
)
height
=
int
(
h
)
# Maybe this is for an older PNG version.
# Maybe this is for an older PNG version.
elif
(
size
>=
16
)
and
(
data
[:
8
]
==
'
\
211
PNG
\
r
\
n
\
032
\
n
'
):
elif
(
size
>=
16
)
and
(
data
[:
8
]
==
b
'
\
211
PNG
\
r
\
n
\
032
\
n
'
):
# Check to see if we have the right content type
# Check to see if we have the right content type
content_type
=
'image/png'
content_type
=
'image/png'
w
,
h
=
struct
.
unpack
(
">LL"
,
data
[
8
:
16
])
w
,
h
=
struct
.
unpack
(
">LL"
,
data
[
8
:
16
])
...
@@ -55,29 +56,32 @@ def getImageInfo_with_svg_fix(data):
...
@@ -55,29 +56,32 @@ def getImageInfo_with_svg_fix(data):
height
=
int
(
h
)
height
=
int
(
h
)
# handle JPEGs
# handle JPEGs
elif
(
size
>=
2
)
and
(
data
[:
2
]
==
'
\
377
\
330
'
):
elif
(
size
>=
2
)
and
(
data
[:
2
]
==
b
'
\
377
\
330
'
):
content_type
=
'image/jpeg'
content_type
=
'image/jpeg'
jpeg
=
BytesIO
(
data
)
jpeg
=
BytesIO
(
data
)
jpeg
.
read
(
2
)
jpeg
.
read
(
2
)
b
=
jpeg
.
read
(
1
)
b
=
jpeg
.
read
(
1
)
try
:
try
:
while
(
b
and
ord
(
b
)
!=
0xDA
):
while
(
b
and
ord
(
b
)
!=
0xDA
):
while
(
ord
(
b
)
!=
0xFF
):
b
=
jpeg
.
read
(
1
)
while
(
ord
(
b
)
!=
0xFF
):
while
(
ord
(
b
)
==
0xFF
):
b
=
jpeg
.
read
(
1
)
b
=
jpeg
.
read
(
1
)
while
(
ord
(
b
)
==
0xFF
):
b
=
jpeg
.
read
(
1
)
if
(
ord
(
b
)
>=
0xC0
and
ord
(
b
)
<=
0xC3
):
if
(
ord
(
b
)
>=
0xC0
and
ord
(
b
)
<=
0xC3
):
jpeg
.
read
(
3
)
jpeg
.
read
(
3
)
h
,
w
=
struct
.
unpack
(
">HH"
,
jpeg
.
read
(
4
))
h
,
w
=
struct
.
unpack
(
">HH"
,
jpeg
.
read
(
4
))
break
break
else
:
else
:
jpeg
.
read
(
int
(
struct
.
unpack
(
">H"
,
jpeg
.
read
(
2
))[
0
])
-
2
)
jpeg
.
read
(
int
(
struct
.
unpack
(
">H"
,
jpeg
.
read
(
2
))[
0
])
-
2
)
b
=
jpeg
.
read
(
1
)
b
=
jpeg
.
read
(
1
)
width
=
int
(
w
)
width
=
int
(
w
)
height
=
int
(
h
)
height
=
int
(
h
)
except
:
pass
except
Exception
:
pass
# MONKEY PATCH START HERE
# MONKEY PATCH START HERE
# Handle SVG
# Handle SVG
elif
(
"</svg>"
in
data
):
elif
(
b
"</svg>"
in
data
):
content_type
=
'image/svg+xml'
content_type
=
'image/svg+xml'
# MONKEY PATCH ENDS HERE
# MONKEY PATCH ENDS HERE
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment