Skip to content

Commit df66c76

Browse files
committed
giflib[-util]: Update to 5.2.2. Libtoolize.
This is a point release intended to clear up a couple of CVEs and apply point fixes that have been accumulating since 5.2.1 There are a few unresolved (but minor) memory leaks related to design issues in the API that still need to be resolved. Expect those fixes in the next release. Code Fixes ---------- * Fixes for CVE-2023-48161, CVE-2022-28506, * Address SF issue #138 Documentation for obsolete utilities still installed * Address SF issue #139: Typo in "LZW image data" page ("110_2 = 4_10") * Address SF issue #140: Typo in "LZW image data" page ("LWZ") * Address SF issue #141: Typo in "Bits and bytes" page ("filed") * Note as already fixed SF issue #143: cannot compile under mingw * Address SF issue #144: giflib-5.2.1 cannot be build on windows and other platforms using c89 * Address SF issue #145: Remove manual pages installation for binaries that are not installed too * Address SF issue #146: [PATCH] Limit installed man pages to binaries, move giflib to section 7 * Address SF issue #147 [PATCH] Fixes to doc/whatsinagif/ content * Address SF issue #148: heap Out of Bound Read in gif2rgb.c:298 DumpScreen2RGB * Declared no-info on SF issue #150: There is a denial of service vulnerability in GIFLIB 5.2.1 * Declared Won't-fix on SF issue 149: Out of source builds no longer possible * Address SF issue #151: A heap-buffer-overflow in gif2rgb.c:294:45 * Address SF issue #152: Fix some typos on the html documentation and man pages * Address SF issue #153: Fix segmentation faults due to non correct checking for args * Address SF issue #154: Recover the giffilter manual page * Address SF issue #155: Add gifsponge docs * Address SF issue #157: An OutofMemory-Exception or Memory Leak in gif2rgb * Address SF issue #158: There is a null pointer problem in gif2rgb * Address SF issue #159 A heap-buffer-overflow in GIFLIB5.2.1 DumpScreen2RGB() in gif2rgb.c:298:45 * Address SF issue #163: detected memory leaks in openbsd_reallocarray giflib/openbsd-reallocarray.c * Address SF issue #164: detected memory leaks in GifMakeMapObject giflib/gifalloc.c * Address SF issue #166: a read zero page leads segment fault in getarg.c and memory leaks in gif2rgb.c and gifmalloc.c * Address SF issue #167: Heap-Buffer Overflow during Image Saving in DumpScreen2RGB Function at Line 321 of gif2rgb.c
1 parent adc4dcd commit df66c76

File tree

8 files changed

+110
-133
lines changed

8 files changed

+110
-133
lines changed

graphics/giflib-util/Makefile

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
# $NetBSD: Makefile,v 1.14 2023/12/21 10:46:15 nros Exp $
1+
# $NetBSD: Makefile,v 1.15 2024/09/18 23:02:59 nia Exp $
22

3-
PKGREVISION= 1
43
.include "../../graphics/giflib/Makefile.common"
54

65
PKGNAME= ${DISTNAME:S/-/-util-/}
@@ -15,13 +14,15 @@ INSTALL_ENV+= MANDIR=${PREFIX}/${PKGMANDIR}
1514

1615
HTMLDIR= share/doc/giflib
1716
INSTALLATION_DIRS= ${HTMLDIR} ${HTMLDIR}/gifstandard \
18-
${HTMLDIR}/whatsinagif
17+
${HTMLDIR}/whatsinagif \
18+
${PKGMANDIR}/man1
1919

2020
INSTALL_TARGET= install-bin
21-
INSTALL_TARGET+= install-man
2221
post-install:
2322
cd ${WRKSRC}/doc && ${INSTALL_DATA} *.html \
2423
${DESTDIR}${PREFIX}/${HTMLDIR}
24+
cd ${WRKSRC}/doc && ${INSTALL_DATA} *.1 \
25+
${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
2526
cd ${WRKSRC}/doc/gifstandard && ${INSTALL_DATA} *.txt \
2627
${DESTDIR}${PREFIX}/${HTMLDIR}/gifstandard
2728
cd ${WRKSRC}/doc/whatsinagif && ${INSTALL_DATA} *.html *.gif \

graphics/giflib-util/PLIST

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@comment $NetBSD: PLIST,v 1.5 2020/01/07 20:25:14 sevan Exp $
1+
@comment $NetBSD: PLIST,v 1.6 2024/09/18 23:02:59 nia Exp $
22
bin/gif2rgb
33
bin/gifbuild
44
bin/gifclrmp
@@ -11,10 +11,11 @@ man/man1/gifbuild.1
1111
man/man1/gifclrmp.1
1212
man/man1/gifcolor.1
1313
man/man1/gifecho.1
14+
man/man1/giffilter.1
1415
man/man1/giffix.1
1516
man/man1/gifhisto.1
1617
man/man1/gifinto.1
17-
man/man1/giflib.1
18+
man/man1/gifsponge.1
1819
man/man1/giftext.1
1920
man/man1/giftool.1
2021
man/man1/gifwedge.1
@@ -25,10 +26,12 @@ share/doc/giflib/gifbuild.html
2526
share/doc/giflib/gifclrmp.html
2627
share/doc/giflib/gifcolor.html
2728
share/doc/giflib/gifecho.html
29+
share/doc/giflib/giffilter.html
2830
share/doc/giflib/giffix.html
2931
share/doc/giflib/gifhisto.html
3032
share/doc/giflib/gifinto.html
3133
share/doc/giflib/giflib.html
34+
share/doc/giflib/gifsponge.html
3235
share/doc/giflib/gifstandard/gif87.txt
3336
share/doc/giflib/gifstandard/gif89.txt
3437
share/doc/giflib/giftext.html
@@ -43,8 +46,6 @@ share/doc/giflib/whatsinagif/gif_file_stream.gif
4346
share/doc/giflib/whatsinagif/global_color_table.gif
4447
share/doc/giflib/whatsinagif/graphic_control_ext.gif
4548
share/doc/giflib/whatsinagif/header_block.gif
46-
share/doc/giflib/whatsinagif/highlight_green.gif
47-
share/doc/giflib/whatsinagif/highlight_purple.gif
4849
share/doc/giflib/whatsinagif/image_data_block.gif
4950
share/doc/giflib/whatsinagif/image_descriptor_block.gif
5051
share/doc/giflib/whatsinagif/index.html
@@ -58,6 +59,7 @@ share/doc/giflib/whatsinagif/sample_1_enlarged.gif
5859
share/doc/giflib/whatsinagif/sample_1_trans.gif
5960
share/doc/giflib/whatsinagif/sample_1_trans_blue.gif
6061
share/doc/giflib/whatsinagif/sample_1_trans_red.gif
62+
share/doc/giflib/whatsinagif/sample_2_animation.gif
6163
share/doc/giflib/whatsinagif/sample_2_animation_green.gif
6264
share/doc/giflib/whatsinagif/sample_2_animation_red.gif
6365
share/doc/giflib/whatsinagif/sample_2_animation_yellow.gif

graphics/giflib/Makefile

+1-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
# $NetBSD: Makefile,v 1.58 2023/11/09 20:31:00 nia Exp $
1+
# $NetBSD: Makefile,v 1.59 2024/09/18 23:02:59 nia Exp $
22

33
.include "Makefile.common"
4-
PKGREVISION= 6
54

65
COMMENT= GIF image format library
76

@@ -14,15 +13,4 @@ MAKE_JOBS_SAFE= no
1413
INSTALL_TARGET= install-include
1514
INSTALL_TARGET+= install-lib
1615

17-
.include "../../mk/bsd.prefs.mk"
18-
19-
.if ${OPSYS} == "Darwin"
20-
.PHONY: fix-darwin-install-name
21-
post-install: fix-darwin-install-name
22-
fix-darwin-install-name:
23-
. for lib in libgif.7.2.0.dylib
24-
install_name_tool -id ${PREFIX}/lib/${lib} ${DESTDIR}${PREFIX}/lib/${lib}
25-
. endfor
26-
.endif
27-
2816
.include "../../mk/bsd.pkg.mk"

graphics/giflib/Makefile.common

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# $NetBSD: Makefile.common,v 1.14 2020/06/05 12:15:16 jperkin Exp $
1+
# $NetBSD: Makefile.common,v 1.15 2024/09/18 23:02:59 nia Exp $
22
# used by graphics/giflib/Makefile
33
# used by graphics/giflib-util/Makefile
44

5-
DISTNAME= giflib-5.2.1
5+
DISTNAME= giflib-5.2.2
66
CATEGORIES= graphics
77
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=giflib/}
88

graphics/giflib/PLIST

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
@comment $NetBSD: PLIST,v 1.9 2020/06/05 12:15:16 jperkin Exp $
1+
@comment $NetBSD: PLIST,v 1.10 2024/09/18 23:02:59 nia Exp $
22
include/gif_lib.h
3-
lib/libgif.a
4-
lib/libgif.so
5-
lib/libgif.so.7
6-
lib/libgif.so.7.2.0
3+
lib/libgif.la

graphics/giflib/distinfo

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
$NetBSD: distinfo,v 1.28 2023/12/21 10:46:14 nros Exp $
1+
$NetBSD: distinfo,v 1.29 2024/09/18 23:02:59 nia Exp $
22

3-
BLAKE2s (giflib-5.2.1.tar.gz) = cac59c8c5042cb67b4dfef98e3344a79817e775409bc37839cabcdd184753ad0
4-
SHA512 (giflib-5.2.1.tar.gz) = 4550e53c21cb1191a4581e363fc9d0610da53f7898ca8320f0d3ef6711e76bdda2609c2df15dc94c45e28bff8de441f1227ec2da7ea827cb3c0405af4faa4736
5-
Size (giflib-5.2.1.tar.gz) = 444187 bytes
6-
SHA1 (patch-CVE-2022-28506) = 1c1819a656dfd5ee82ddc4b7981ab42548e76d6a
7-
SHA1 (patch-Makefile) = d8c03a112ce913ce03f4afb128ccef3a42d639c9
3+
BLAKE2s (giflib-5.2.2.tar.gz) = 2a24163a1af876f9241b5971a7e523f054d131661435e4a3ab11b7cf6acc20f1
4+
SHA512 (giflib-5.2.2.tar.gz) = 0865ab2b1904fa14640c655fdb14bb54244ad18a66e358565c00287875d00912343f9be8bfac7658cc0146200d626f7ec9160d7a339f20ba3be6b9941d73975f
5+
Size (giflib-5.2.2.tar.gz) = 447175 bytes
6+
SHA1 (patch-Makefile) = 9c76f45626d7e4a406df89aef051a73dbc56ddb8

graphics/giflib/patches/patch-CVE-2022-28506

-18
This file was deleted.
+89-81
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
$NetBSD: patch-Makefile,v 1.7 2023/12/21 10:46:15 nros Exp $
1+
$NetBSD: patch-Makefile,v 1.8 2024/09/18 23:02:59 nia Exp $
22

3-
- Inherit the PREFIX rather than hard-coding it.
4-
- Allow override of MANDIR to install manpages correctly
5-
- Apply <https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/>
6-
to fix Darwin build
3+
- Libtoolize.
4+
- Allow override of PREFIX and MANDIR.
5+
- Allow separate installation of utilities.
76
- Move quantize.c back into libgif.so to fix various library users.
87

9-
--- Makefile.orig 2019-06-24 16:08:57.000000000 +0000
8+
--- Makefile.orig 2024-02-19 01:01:50.000000000 +0000
109
+++ Makefile
1110
@@ -8,17 +8,17 @@
1211
#
@@ -29,104 +28,113 @@ $NetBSD: patch-Makefile,v 1.7 2023/12/21 10:46:15 nros Exp $
2928

3029
# No user-serviceable parts below this line
3130

32-
@@ -29,14 +29,16 @@ LIBPOINT=0
31+
@@ -29,13 +29,13 @@ LIBPOINT=0
3332
LIBVER=$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT)
3433

3534
SOURCES = dgif_lib.c egif_lib.c gifalloc.c gif_err.c gif_font.c \
3635
- gif_hash.c openbsd-reallocarray.c
3736
+ gif_hash.c openbsd-reallocarray.c quantize.c
3837
HEADERS = gif_hash.h gif_lib.h gif_lib_private.h
39-
OBJECTS = $(SOURCES:.c=.o)
38+
-OBJECTS = $(SOURCES:.c=.o)
39+
+OBJECTS = $(SOURCES:.c=.lo)
4040

4141
-USOURCES = qprintf.c quantize.c getarg.c
4242
+USOURCES = qprintf.c getarg.c
4343
UHEADERS = getarg.h
44-
UOBJECTS = $(USOURCES:.c=.o)
45-
46-
+UNAME:=$(shell uname)
44+
-UOBJECTS = $(USOURCES:.c=.o)
45+
+UOBJECTS = $(USOURCES:.c=.lo)
46+
47+
UNAME:=$(shell uname)
48+
49+
@@ -61,7 +61,7 @@ UTILS = $(INSTALLABLE) \
50+
gifsponge \
51+
gifwedge
52+
53+
-LDLIBS=libgif.a -lm
54+
+LDLIBS=-L$(PREFIX)/lib $(COMPILER_RPATH_FLAG)$(PREFIX)/lib -lgif -lm
55+
56+
MANUAL_PAGES = \
57+
doc/gif2rgb.xml \
58+
@@ -72,45 +72,30 @@ MANUAL_PAGES = \
59+
doc/giftext.xml \
60+
doc/giftool.xml
61+
62+
-SOEXTENSION = so
63+
+SOEXTENSION = la
64+
LIBGIFSO = libgif.$(SOEXTENSION)
65+
LIBGIFSOMAJOR = libgif.$(SOEXTENSION).$(LIBMAJOR)
66+
LIBGIFSOVER = libgif.$(SOEXTENSION).$(LIBVER)
67+
LIBUTILSO = libutil.$(SOEXTENSION)
68+
LIBUTILSOMAJOR = libutil.$(SOEXTENSION).$(LIBMAJOR)
69+
-ifeq ($(UNAME), Darwin)
70+
-SOEXTENSION = dylib
71+
-LIBGIFSO = libgif.$(SOEXTENSION)
72+
-LIBGIFSOMAJOR = libgif.$(LIBMAJOR).$(SOEXTENSION)
73+
-LIBGIFSOVER = libgif.$(LIBVER).$(SOEXTENSION)
74+
-LIBUTILSO = libutil.$(SOEXTENSION)
75+
-LIBUTILSOMAJOR = libutil.$(LIBMAJOR).$(SOEXTENSION)
76+
-endif
77+
78+
-all: $(LIBGIFSO) libgif.a $(LIBUTILSO) libutil.a $(UTILS)
79+
-ifeq ($(UNAME), Darwin)
80+
-else
81+
- $(MAKE) -C doc
82+
-endif
83+
+all: $(LIBGIFSO) $(LIBUTILSO)
84+
85+
-$(UTILS):: libgif.a libutil.a
86+
+.SUFFIXES: .lo
87+
88+
-$(LIBGIFSO): $(OBJECTS) $(HEADERS)
89+
-ifeq ($(UNAME), Darwin)
90+
- $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o $(LIBGIFSO)
91+
-else
92+
- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBGIFSOMAJOR) -o $(LIBGIFSO) $(OBJECTS)
93+
-endif
94+
+.c.lo:
95+
+ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(CFLAGS) -c $<
4796
+
48-
# Some utilities are installed
49-
INSTALLABLE = \
50-
gif2rgb \
51-
@@ -61,27 +63,38 @@ UTILS = $(INSTALLABLE) \
52-
53-
LDLIBS=libgif.a -lm
97+
+.libs/libgif.a: $(LIBGIFSO)
98+
+.libs/libutil.a: $(LIBUTILSO)
5499

55-
-all: libgif.so libgif.a libutil.so libutil.a $(UTILS)
56-
- $(MAKE) -C doc
57-
+ifeq ($(UNAME), Darwin)
58-
+SOEXTENSION = dylib
59-
+LIBGIFSOMAJOR = libgif.$(LIBMAJOR).$(SOEXTENSION)
60-
+LIBGIFSOVER = libgif.$(LIBVER).$(SOEXTENSION)
61-
+else
62-
+SOEXTENSION = so
63-
+LIBGIFSOMAJOR = libgif.$(SOEXTENSION).$(LIBMAJOR)
64-
+LIBGIFSOVER = libgif.$(SOEXTENSION).$(LIBVER)
65-
+endif
66-
+LIBGIFSO = libgif.$(SOEXTENSION)
100+
-libgif.a: $(OBJECTS) $(HEADERS)
101+
- $(AR) rcs libgif.a $(OBJECTS)
102+
+$(UTILS): .libs/libgif.a .libs/libutil.a
67103
+
68-
+all: $(LIBGIFSO) libgif.a libutil.a $(UTILS)
104+
+$(LIBGIFSO): $(OBJECTS) $(HEADERS)
105+
+ $(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) $(LDFLAGS) -version-info $(LIBMAJOR):0:0 -rpath $(PREFIX)/lib -o $(LIBGIFSO) $(OBJECTS)
69106

70-
$(UTILS):: libgif.a libutil.a
107+
$(LIBUTILSO): $(UOBJECTS) $(UHEADERS)
108+
-ifeq ($(UNAME), Darwin)
109+
- $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o $(LIBUTILSO)
110+
-else
111+
- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBUTILMAJOR) -o $(LIBUTILSO) $(UOBJECTS)
112+
-endif
113+
+ $(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) $(LDFLAGS) -version-info $(LIBMAJOR):0:0 -rpath $(PREFIX)/lib -o $(LIBUTILSO) $(UOBJECTS)
71114

72-
-libgif.so: $(OBJECTS) $(HEADERS)
73-
- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
74-
+$(LIBGIFSO): $(OBJECTS) $(HEADERS)
75-
+ifeq ($(UNAME), Darwin)
76-
+ $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o $(LIBGIFSO)
77-
+else
78-
+ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBGIFSOMAJOR) -o $(LIBGIFSO) $(OBJECTS)
79-
+endif
80-
81-
libgif.a: $(OBJECTS) $(HEADERS)
82-
$(AR) rcs libgif.a $(OBJECTS)
83-
84-
-libutil.so: $(UOBJECTS) $(UHEADERS)
85-
- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libutil.so.$(LIBMAJOR) -o libutil.so $(UOBJECTS)
86-
-
87115
libutil.a: $(UOBJECTS) $(UHEADERS)
88116
$(AR) rcs libutil.a $(UOBJECTS)
89-
90-
clean:
91-
- rm -f $(UTILS) $(TARGET) libgetarg.a libgif.a libgif.so libutil.a libutil.so *.o
92-
- rm -f libgif.so.$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT)
93-
- rm -f libgif.so.$(LIBMAJOR)
94-
+ rm -f $(UTILS) $(TARGET) libgetarg.a libgif.a $(LIBGIFSO) libutil.a *.o
95-
+ rm -f $(LIBGIFSOVER)
96-
+ rm -f $(LIBGIFSOMAJOR)
97-
rm -fr doc/*.1 *.html doc/staging
98-
99-
check: all
100-
@@ -89,7 +102,8 @@ check: all
117+
@@ -129,11 +114,7 @@ reflow:
101118

102119
# Installation/uninstallation
103120

104-
-install: all install-bin install-include install-lib install-man
105-
+install: all install-bin install-include install-lib
106-
+
121+
-ifeq ($(UNAME), Darwin)
122+
-install: all install-bin install-include install-lib
123+
-else
124+
install: all install-bin install-include install-lib install-man
125+
-endif
126+
107127
install-bin: $(INSTALLABLE)
108128
$(INSTALL) -d "$(DESTDIR)$(BINDIR)"
109-
$(INSTALL) $^ "$(DESTDIR)$(BINDIR)"
110-
@@ -99,9 +113,10 @@ install-include:
129+
@@ -143,10 +124,7 @@ install-include:
130+
$(INSTALL) -m 644 gif_lib.h "$(DESTDIR)$(INCDIR)"
111131
install-lib:
112132
$(INSTALL) -d "$(DESTDIR)$(LIBDIR)"
113-
$(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a"
114-
- $(INSTALL) -m 755 libgif.so "$(DESTDIR)$(LIBDIR)/libgif.so.$(LIBVER)"
115-
- ln -sf libgif.so.$(LIBVER) "$(DESTDIR)$(LIBDIR)/libgif.so.$(LIBMAJOR)"
116-
- ln -sf libgif.so.$(LIBMAJOR) "$(DESTDIR)$(LIBDIR)/libgif.so"
117-
+ $(INSTALL) -m 755 $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOVER)"
118-
+ ln -sf $(LIBGIFSOVER) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOMAJOR)"
119-
+ ln -sf $(LIBGIFSOMAJOR) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSO)"
120-
+
133+
- $(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a"
134+
- $(INSTALL) -m 755 $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOVER)"
135+
- ln -sf $(LIBGIFSOVER) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOMAJOR)"
136+
- ln -sf $(LIBGIFSOMAJOR) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSO)"
137+
+ $(LIBTOOL) --mode=install --tag=CC $(BSD_INSTALL_LIB) $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)"
121138
install-man:
122139
$(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1"
123-
$(INSTALL) -m 644 doc/*.1 "$(DESTDIR)$(MANDIR)/man1"
124-
@@ -112,7 +127,7 @@ uninstall-include:
125-
rm -f "$(DESTDIR)$(INCDIR)/gif_lib.h"
126-
uninstall-lib:
127-
cd "$(DESTDIR)$(LIBDIR)" && \
128-
- rm -f libgif.a libgif.so libgif.so.$(LIBMAJOR) libgif.so.$(LIBVER)
129-
+ rm -f libgif.a $(LIBGIFSO) $(LIBGIFSOMAJOR) $(LIBGIFSOVER)
130-
uninstall-man:
131-
cd "$(DESTDIR)$(MANDIR)/man1" && rm -f $(shell cd doc >/dev/null && echo *.1)
132-
140+
$(INSTALL) -m 644 $(MANUAL_PAGES) "$(DESTDIR)$(MANDIR)/man1"

0 commit comments

Comments
 (0)