ports/101688: [PATCH] net-im/centericq: honor CFLAGS, fix memory leekage bugs
Stanislav Sedov
ssedov at mbsd.msk.ru
Wed Aug 9 08:30:18 UTC 2006
>Number: 101688
>Category: ports
>Synopsis: [PATCH] net-im/centericq: honor CFLAGS, fix memory leekage bugs
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Aug 09 08:30:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Stanislav Sedov
>Release: FreeBSD 7.0-CURRENT i386
>Organization:
MBSD labs, Inc.
>Environment:
System: FreeBSD fonon.realnet 7.0-CURRENT FreeBSD 7.0-CURRENT #1: Wed Aug 2 21:44:37 MSD
>Description:
- Respect CFLAGS
- Fix some annoying memory leekage bugs that tends to core dumps.
The following files was added:
- files/patch-kkconsui-0.1_src_texteditor.cc
- files/patch-kkstrtext-0.1_kkstrtext.cc
- files/patch-kkstrtext-0.1_kkstrtext.h
- files/patch-libicq2000-0.1_src_DirectClient.cpp
- files/patch-src_icqface.cc
Copy of this message was sent to (clsung at FreeBSD.org).
>How-To-Repeat:
>Fix:
--- centericq-4.21.0_4.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/net-im/centericq/Makefile /var/tmp/centericq/Makefile
--- /usr/ports/net-im/centericq/Makefile Thu May 11 13:07:15 2006
+++ /var/tmp/centericq/Makefile Wed Aug 9 12:19:23 2006
@@ -8,7 +8,7 @@
PORTNAME= centericq
PORTVERSION= 4.21.0
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= net-im
MASTER_SITES= http://centericq.de/archive/source/releases/ \
http://thekonst.net/download/
@@ -22,7 +22,7 @@
USE_GMAKE= yes
GNU_CONFIGURE= yes
CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
- CXXFLAGS="-I${LOCALBASE}/include"
+ CXXFLAGS="-I${LOCALBASE}/include ${CXXFLAGS}"
LDFLAGS+= -L${LOCALBASE}/lib -lstdc++
CONFIGURE_ARGS= --with-openssl --disable-konst
diff -ruN --exclude=CVS /usr/ports/net-im/centericq/files/patch-kkconsui-0.1_src_texteditor.cc /var/tmp/centericq/files/patch-kkconsui-0.1_src_texteditor.cc
--- /usr/ports/net-im/centericq/files/patch-kkconsui-0.1_src_texteditor.cc Thu Jan 1 03:00:00 1970
+++ /var/tmp/centericq/files/patch-kkconsui-0.1_src_texteditor.cc Wed Aug 9 12:24:29 2006
@@ -0,0 +1,67 @@
+--- kkconsui-0.1/src/texteditor.cc.orig Wed Aug 9 12:23:58 2006
++++ kkconsui-0.1/src/texteditor.cc Wed Aug 9 12:24:17 2006
+@@ -106,7 +106,7 @@
+ fread(p, st.st_size, 1, f);
+ p[st.st_size] = 0;
+ i = load(p, strdup(id.c_str()));
+- delete p;
++ delete[] p;
+ }
+
+ return i;
+@@ -124,7 +124,7 @@
+ f.read(buf, size);
+ buf[size] = 0;
+ ret = load(buf, strdup(id.c_str()));
+- delete buf;
++ delete[] buf;
+
+ return ret;
+ }
+@@ -172,7 +172,7 @@
+ int texteditor::save(FILE *f, const char *linebreak) {
+ char *buf = save(linebreak);
+ fwrite(buf, strlen(buf), 1, f);
+- delete buf;
++ free(buf);
+ modified = false;
+ return 0;
+ }
+@@ -180,7 +180,7 @@
+ int texteditor::save(ofstream &f, const string linebreak) {
+ char *buf = save(linebreak.c_str());
+ f.write(buf, strlen(buf));
+- delete buf;
++ free(buf);
+ f.close();
+ modified = false;
+ return 0;
+@@ -526,7 +526,7 @@
+ fread(buf, fsize, 1, f);
+ buf[fsize] = 0;
+ insert(buf);
+- delete buf;
++ delete[] buf;
+ }
+ }
+
+@@ -576,8 +576,8 @@
+ firstpass = false;
+ }
+
+- delete el;
+- delete sl;
++ free(el);
++ free(sl);
+
+ modification(uinsblock, sbuf);
+ }
+@@ -1081,7 +1081,7 @@
+ curfile->lines->replace(CURLINE, newline);
+ }
+
+- delete anext;
++ free(anext);
+ } else {
+ if(next) nextlen = strlen(next); else nextlen = 0;
+ char *newline = new char[nextlen+strlen(p)+1];
diff -ruN --exclude=CVS /usr/ports/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc /var/tmp/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc
--- /usr/ports/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc Thu Jan 1 03:00:00 1970
+++ /var/tmp/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc Wed Aug 9 10:50:28 2006
@@ -0,0 +1,40 @@
+--- kkstrtext-0.1/kkstrtext.cc.orig Wed Aug 9 10:44:43 2006
++++ kkstrtext-0.1/kkstrtext.cc Wed Aug 9 10:50:27 2006
+@@ -154,7 +154,7 @@
+ string r;
+ char *buf = (char *) utf8_to_str(text.c_str());
+ r = buf;
+- delete buf;
++ delete[] buf;
+ return r;
+ }
+
+@@ -162,7 +162,7 @@
+ string r;
+ char *buf = str_to_utf8(text.c_str());
+ r = buf;
+- delete buf;
++ delete[] buf;
+ return r;
+ }
+
+@@ -416,7 +416,7 @@
+
+ void charpointerfree(void *p) {
+ char *cp = (char *) p;
+- if(cp) delete cp;
++ if(cp) free(cp);
+ }
+
+ void nothingfree(void *p) {
+@@ -907,8 +907,8 @@
+ r += soutbuf;
+ text.erase(0, text.size()-inleft);
+
+- delete soutbuf;
+- delete sinbuf;
++ delete[] soutbuf;
++ free(sinbuf);
+
+ if(res == -1 && errno != EILSEQ)
+ break;
diff -ruN --exclude=CVS /usr/ports/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.h /var/tmp/centericq/files/patch-kkstrtext-0.1_kkstrtext.h
--- /usr/ports/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.h Thu Jan 1 03:00:00 1970
+++ /var/tmp/centericq/files/patch-kkstrtext-0.1_kkstrtext.h Wed Aug 9 10:51:33 2006
@@ -0,0 +1,11 @@
+--- kkstrtext-0.1/kkstrtext.h.orig Wed Aug 9 10:50:49 2006
++++ kkstrtext-0.1/kkstrtext.h Wed Aug 9 10:51:12 2006
+@@ -87,7 +87,7 @@
+ { \
+ va_list vgs__ap; char vgs__buf[1024]; \
+ va_start(vgs__ap, fmt); \
+- vsprintf(vgs__buf, fmt, vgs__ap); c = vgs__buf; \
++ vsnprintf(vgs__buf, sizeof(vgs__buf), fmt, vgs__ap); c = vgs__buf; \
+ va_end(vgs__ap); \
+ }
+
diff -ruN --exclude=CVS /usr/ports/net-im/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp /var/tmp/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp
--- /usr/ports/net-im/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp Thu Jan 1 03:00:00 1970
+++ /var/tmp/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp Wed Aug 9 10:53:56 2006
@@ -0,0 +1,11 @@
+--- libicq2000-0.1/src/DirectClient.cpp.orig Wed Aug 9 10:52:04 2006
++++ libicq2000-0.1/src/DirectClient.cpp Wed Aug 9 10:53:26 2006
+@@ -162,6 +162,8 @@
+
+ m_recv.setLittleEndian();
+ m_recv >> length;
++ if (length == 0)
++ return;
+ if (length > Incoming_Packet_Limit) throw ParseException("Received too long incoming packet");
+ if (m_recv.remains() < length) return; // waiting for more of the packet
+
diff -ruN --exclude=CVS /usr/ports/net-im/centericq/files/patch-src_icqface.cc /var/tmp/centericq/files/patch-src_icqface.cc
--- /usr/ports/net-im/centericq/files/patch-src_icqface.cc Thu Jan 1 03:00:00 1970
+++ /var/tmp/centericq/files/patch-src_icqface.cc Wed Aug 9 10:44:32 2006
@@ -0,0 +1,11 @@
+--- src/icqface.cc.orig Wed Aug 9 10:43:40 2006
++++ src/icqface.cc Wed Aug 9 10:44:14 2006
+@@ -2003,7 +2003,7 @@
+ mvaddchnstr(i-1, sizeWArea.x1+1, logline, sizeWArea.x2-sizeWArea.x1);
+ }
+
+- delete logline;
++ delete[] logline;
+
+ if(text.size() > sizeWArea.x2-sizeWArea.x1-2) text.resize(sizeWArea.x2-sizeWArea.x1-2);
+ mvhline(LINES-3, sizeWArea.x1+2, ' ', sizeWArea.x2-sizeWArea.x1-2);
--- centericq-4.21.0_4.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list