pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/devel/SOPE
Module Name: pkgsrc
Committed By: kikadf
Date: Sat Oct 4 13:58:20 UTC 2025
Modified Files:
pkgsrc/devel/SOPE: DESCR Makefile distinfo
Added Files:
pkgsrc/devel/SOPE/patches: patch-sope-core_NGExtensions_NGHashMap.m
Log Message:
devel/SOPE: fix CVE-2025-53603
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 pkgsrc/devel/SOPE/DESCR
cvs rdiff -u -r1.68 -r1.69 pkgsrc/devel/SOPE/Makefile
cvs rdiff -u -r1.27 -r1.28 pkgsrc/devel/SOPE/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/devel/SOPE/patches/patch-sope-core_NGExtensions_NGHashMap.m
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/devel/SOPE/DESCR
diff -u pkgsrc/devel/SOPE/DESCR:1.4 pkgsrc/devel/SOPE/DESCR:1.5
--- pkgsrc/devel/SOPE/DESCR:1.4 Mon Jun 14 17:19:05 2021
+++ pkgsrc/devel/SOPE/DESCR Sat Oct 4 13:58:20 2025
@@ -5,4 +5,3 @@ ZOPE (the Z Object Publishing Environmen
and details are quite different.
This is an old version still maintained by upstream.
-
Index: pkgsrc/devel/SOPE/Makefile
diff -u pkgsrc/devel/SOPE/Makefile:1.68 pkgsrc/devel/SOPE/Makefile:1.69
--- pkgsrc/devel/SOPE/Makefile:1.68 Thu Apr 17 21:50:15 2025
+++ pkgsrc/devel/SOPE/Makefile Sat Oct 4 13:58:20 2025
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.68 2025/04/17 21:50:15 wiz Exp $
+# $NetBSD: Makefile,v 1.69 2025/10/04 13:58:20 kikadf Exp $
DISTNAME= SOPE-2.4.3
PKGNAME= ${DISTNAME}
-PKGREVISION= 1
-#PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GITHUB:=Alinto/}
GITHUB_PROJECT= sope
Index: pkgsrc/devel/SOPE/distinfo
diff -u pkgsrc/devel/SOPE/distinfo:1.27 pkgsrc/devel/SOPE/distinfo:1.28
--- pkgsrc/devel/SOPE/distinfo:1.27 Mon Feb 24 16:39:46 2025
+++ pkgsrc/devel/SOPE/distinfo Sat Oct 4 13:58:20 2025
@@ -1,13 +1,13 @@
-$NetBSD: distinfo,v 1.27 2025/02/24 16:39:46 manu Exp $
+$NetBSD: distinfo,v 1.28 2025/10/04 13:58:20 kikadf Exp $
BLAKE2s (sope/SOPE-2.4.3.tar.gz) = d22d3724b36a41fa08e89554c3a849a9d307fd8f0a52f5cbee2536d7df64f1a0
SHA512 (sope/SOPE-2.4.3.tar.gz) = 2625c7516ca9df35cdd8f97aaf30b25dc8ffe104c9b84140d3979f32ad89c99f2a3d1b6ba72052b2410938bd06156d08953875796e05f525b52e98d977b17071
Size (sope/SOPE-2.4.3.tar.gz) = 2219842 bytes
SHA1 (patch-general.make) = 080d097aca56c4aae59beadd0c0829c6b1798aa3
+SHA1 (patch-sope-core_NGExtensions_NGHashMap.m) = 2405ae1d45dc2c98b68553930e707a5bf774b809
SHA1 (patch-sope-core_NGStreams_NGActiveSocket.m) = c06a04b009f894eee0161eb8bd3f9c7011b6de3e
SHA1 (patch-sope-core_NGStreams_NGDescriptorFunctions.m) = e3045db3205cd859d78c3953e0f1565626c69d04
SHA1 (patch-sope-core_NGStreams_NGInternetSocketAddress.m) = 8e0da0d372189c3c63e0c4004ef50364c3c5a392
SHA1 (patch-sope-core_NGStreams_NGLocalSocketAddress.m) = 26288c147ef39ef3a63bc03cc83be123b364d206
SHA1 (patch-sope-core_NGStreams_NGLocalSocketDomain.m) = 2b8d2e842e6de346bf908bf38bbf4c5de4d93e89
SHA1 (patch-sope-mime_NGMime_NGMimeType.m) = afc67e53b32b7de5098058c8bbe76ed08bae8eb7
-SHA1 (patch-sope-xml_libxmlSAXDriver_libxmlHTMLSAXDriver.m) = 20b00937973c64f36324c9670ba08374bccec13b
Added files:
Index: pkgsrc/devel/SOPE/patches/patch-sope-core_NGExtensions_NGHashMap.m
diff -u /dev/null pkgsrc/devel/SOPE/patches/patch-sope-core_NGExtensions_NGHashMap.m:1.1
--- /dev/null Sat Oct 4 13:58:20 2025
+++ pkgsrc/devel/SOPE/patches/patch-sope-core_NGExtensions_NGHashMap.m Sat Oct 4 13:58:20 2025
@@ -0,0 +1,124 @@
+$NetBSD: patch-sope-core_NGExtensions_NGHashMap.m,v 1.1 2025/10/04 13:58:20 kikadf Exp $
+
+* Fix CVE-2025-53603,
+ https://github.com/Alinto/sope/commit/e954ab0cd254dc1837af690329b04504410cbe63
+
+--- sope-core/NGExtensions/NGHashMap.m.orig 2022-04-05 15:02:10.000000000 +0000
++++ sope-core/NGExtensions/NGHashMap.m
+@@ -216,6 +216,7 @@ static inline unsigned __countObjectsFor
+ NSEnumerator *keys = nil;
+ id key = nil;
+ LList *list = NULL;
++ LList *root = NULL;
+ LList *newList = NULL;
+ LList *oldList = NULL;
+
+@@ -223,7 +224,7 @@ static inline unsigned __countObjectsFor
+ keys = [_hashMap keyEnumerator];
+ while ((key = [keys nextObject])) {
+ list = [_hashMap __structForKey:key];
+- newList = initLListElement(list->object,NULL);
++ root = newList = initLListElement(list->object,NULL);
+ newList->count = list->count;
+ NSMapInsert(self->table,key,newList);
+ while (list->next) {
+@@ -232,6 +233,7 @@ static inline unsigned __countObjectsFor
+ newList = initLListElement(list->object,NULL);
+ oldList->next = newList;
+ }
++ root->last = newList;
+ }
+ }
+ return self;
+@@ -257,6 +259,7 @@ static inline unsigned __countObjectsFor
+ pred = element;
+ }
+ root->count = i;
++ root->last = pred;
+ NSMapInsert(self->table,_key, root);
+ }
+ NSAssert(self->table, @"missing table for hashmap ..");
+@@ -712,6 +715,7 @@ static inline unsigned __countObjectsFor
+ {
+ id object = nil;
+ LList *root = NULL;
++ LList *insert = NULL;
+ LList *element = NULL;
+ unsigned i = 0;
+
+@@ -728,10 +732,13 @@ static inline unsigned __countObjectsFor
+ }
+
+ root = initLListElement(_objects[0], NULL);
++ insert = root;
+ root->count = _count;
++ // set root->last to last inserted element later
+ NSMapInsert(self->table, _key, root);
+ }
+ else {
++ insert = root;
+ if (!(_index < root->count)) {
+ [NSException raise:NSRangeException
+ format:@"index %"PRIuPTR" out of range in map 0x%p length %d",
+@@ -741,30 +748,38 @@ static inline unsigned __countObjectsFor
+
+ root->count += _count;
+ if (_index == 0) {
++ // move current data at pos 0 to new element (prepending
++ // a new element would require replacing entry in NSMapTable)
+ element = initLListElement(_objects[0],NULL);
+ object = element->object;
+ element->next = root->next;
+ element->object = root->object;
+ root->object = object;
+ root->next = element;
++ if (root->last == root)
++ root->last = element; // inserted at pos 0 before the only item
+ }
+ else {
+ while (--_index)
+- root = root->next;
++ insert = insert->next;
++ if (root->last == insert)
++ root->last = NULL; // set to last inserted element later
+
+ element = initLListElement(_objects[0], NULL);
+- element->next = root->next;
+- root->next = element;
+- root = root->next;
++ element->next = insert->next;
++ insert->next = element;
++ insert = insert->next;
+ }
+ }
+ for (i = 1; i < _count; i++) {
+ checkForAddErrorMessage(self, _objects[i], _key);
+ element = initLListElement(_objects[i], NULL);
+- element->next = root->next;
+- root->next = element;
+- root = element;
++ element->next = insert->next;
++ insert->next = element;
++ insert = element;
+ }
++ if (root->last == NULL)
++ root->last = insert;
+ }
+
+ /* adding objects */
+@@ -864,6 +879,7 @@ static inline unsigned __countObjectsFor
+ root->next = list->next;
+ root->object = list->object;
+ root->count--;
++ // cleanup root->last (could be list!) after loop below
+ if (list) free(list);
+ list = NULL;
+ }
+@@ -880,6 +896,7 @@ static inline unsigned __countObjectsFor
+ list = oldList;
+ }
+ }
++ root->last = list; // list->next is NULL, i.e. it is the last
+ root->count -= cnt;
+ }
+ }
Home |
Main Index |
Thread Index |
Old Index