mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-23 00:43:28 +00:00
Add a patch to to eliminate segfaults.
PR: ports/108693 Submitted by: Kevin Oberman <oberman (at) es.net> (maintainer)
This commit is contained in:
parent
18c6b57120
commit
2403e3feb3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=184158
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= irrtoolset
|
||||
PORTVERSION= 4.8.4
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= net-mgmt
|
||||
MASTER_SITES= ${MASTER_SITE_ISC} \
|
||||
ftp://ftp.ripe.net/tools/
|
||||
|
69
net-mgmt/irrtoolset/files/patch-src-irr-rawhoisc.cc
Normal file
69
net-mgmt/irrtoolset/files/patch-src-irr-rawhoisc.cc
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
Add the following file as files/patch-src-irr-rawhoisc.cc and bump
|
||||
PORTREVISION (to 1).
|
||||
|
||||
--- src/irr/rawhoisc.cc.orig Thu Jun 8 08:16:26 2006
|
||||
+++ src/irr/rawhoisc.cc Tue Jan 23 15:14:24 2007
|
||||
@@ -1,4 +1,4 @@
|
||||
-// $Id: rawhoisc.cc,v 4.11 2006/06/08 15:16:26 shane Exp $
|
||||
+// $Id: rawhoisc.cc,v 4.11.10.1 2006/12/08 08:33:52 shane Exp $
|
||||
// Copyright (c) 2001,2002 RIPE NCC
|
||||
//
|
||||
// All Rights Reserved
|
||||
@@ -187,7 +187,7 @@
|
||||
}
|
||||
|
||||
void RAWhoisClient::GetVersion() {
|
||||
- char *buffer = (char *) calloc (80,1);
|
||||
+ char *buffer;
|
||||
char *start;
|
||||
|
||||
if (! _is_open)
|
||||
@@ -199,7 +199,7 @@
|
||||
start = start + 8; //jump
|
||||
version = atoi(start)*10 + atoi(start+2); // x.x... format
|
||||
Trace(TR_WHOIS_RESPONSE) << "Whois: Response " << buffer << endl;
|
||||
- free(buffer);
|
||||
+ delete [] buffer;
|
||||
}
|
||||
|
||||
void RAWhoisClient::SetSources(const char *_sources) {
|
||||
@@ -298,9 +298,11 @@
|
||||
return 0;
|
||||
}
|
||||
if (is_rpslng()) {
|
||||
- response = strdup("");
|
||||
- char *prev;
|
||||
+ response = new char[1];
|
||||
+ response[0] = '\0';
|
||||
+ char *prev = NULL;
|
||||
do {
|
||||
+ free(prev);
|
||||
prev = strdup(buffer);
|
||||
Trace(TR_WHOIS_RESPONSE) << "Whois: Response <<\n" << buffer <<">>"<< endl;
|
||||
if (strstr (buffer, "route") || strstr(buffer, "route6")) {
|
||||
@@ -315,18 +317,20 @@
|
||||
// save response
|
||||
tmp = strdup (response);
|
||||
// allocate new string
|
||||
+ delete [] response;
|
||||
response = new char [strlen(tmp) + strlen(end_prefix) + 2];
|
||||
- memset(response, 0, strlen(response));
|
||||
// copy old and new response
|
||||
- strncat (response, tmp, strlen(tmp));
|
||||
- strncat (response, " ", 1);
|
||||
- strncat (response, end_prefix, strlen(end_prefix));
|
||||
+ strcpy(response, tmp);
|
||||
+ strcat(response, " ");
|
||||
+ strcat(response, end_prefix);
|
||||
free(tmp);
|
||||
}
|
||||
} while (fgets(buffer, sizeof(buffer), in) &&
|
||||
// this condition should work with irrd version >= 2.2b19
|
||||
// until then, ripe-style queries won't work with persistent connections
|
||||
!((*prev == '\n') && (*buffer == '\n')));
|
||||
+
|
||||
+ free(prev);
|
||||
|
||||
// The WHOIS protocol and RPSL give no indication of
|
||||
// end of a protocol data unit, so we need to keep
|
Loading…
Reference in New Issue
Block a user