diff options
Diffstat (limited to 'dev-util/rats')
-rw-r--r-- | dev-util/rats/Manifest | 2 | ||||
-rw-r--r-- | dev-util/rats/files/rats-2.1-add-getopt-trailing-null.patch | 11 | ||||
-rw-r--r-- | dev-util/rats/files/rats-2.1-fix-null-pointers.patch | 128 | ||||
-rw-r--r-- | dev-util/rats/metadata.xml | 13 | ||||
-rw-r--r-- | dev-util/rats/rats-2.1-r2.ebuild | 37 | ||||
-rw-r--r-- | dev-util/rats/rats-2.3.ebuild | 38 |
6 files changed, 229 insertions, 0 deletions
diff --git a/dev-util/rats/Manifest b/dev-util/rats/Manifest new file mode 100644 index 000000000000..4c46c7bd9099 --- /dev/null +++ b/dev-util/rats/Manifest @@ -0,0 +1,2 @@ +DIST rats-2.1.tar.gz 326930 SHA256 ec9fac2765b655c03cede8c5920de3226581f1e626be314bce95f4d0ac9aadd9 SHA512 2fdb670dc9559c453a6c69ee2d411e2626c0ee4cca4b59ceda878142008e136dfd11f8265c0719383212b38b0358a9cab1a29f1cc92a986fc800dd0c46bdf0d3 WHIRLPOOL 376a79cf05aad274296a7a17944ad4f4523e82c0db4c09f201dbcdc306ba803a8e8824cadc2526a05cb448c91ea35020dcd0b3ef56fc71976216b38b50758822 +DIST rats-2.3.tar.gz 391573 SHA256 36872ab4ed55058821d49cd0d1f2c36f1505dae129a697083717a95924cd1478 SHA512 10ca0ca46515e6f9349f9325ab19a7e453a66e472036e22b602b77bd816fcddb8fa5c9fa936c6a8004f713af0eb11cd357a91668809b53666522d3aa08130ba1 WHIRLPOOL d1c8155b217bd8470b8f7ae38b9593a7a7c1f63b6877875444c5e3ed0bf11bb813151daa0a4dad59a3e9be0d87e1f05ab6dc3e10f4baca0062167dabf5229339 diff --git a/dev-util/rats/files/rats-2.1-add-getopt-trailing-null.patch b/dev-util/rats/files/rats-2.1-add-getopt-trailing-null.patch new file mode 100644 index 000000000000..65ea6df1f456 --- /dev/null +++ b/dev-util/rats/files/rats-2.1-add-getopt-trailing-null.patch @@ -0,0 +1,11 @@ +diff -Nuar --exclude '*~' rats-2.1.orig/main.c rats-2.1/main.c +--- rats-2.1.orig/main.c 2002-09-16 21:05:43.000000000 -0700 ++++ rats-2.1/main.c 2006-05-21 21:56:29.578601459 -0700 +@@ -278,6 +278,7 @@ + {"columns", 0,0,0}, + {"context", 0,0,0}, + {"all-static", 0,0,0}, ++ {NULL,0,0,0} + }; + progname = argv[0]; + flags|=RECURSIVE_FILE_SCAN; diff --git a/dev-util/rats/files/rats-2.1-fix-null-pointers.patch b/dev-util/rats/files/rats-2.1-fix-null-pointers.patch new file mode 100644 index 000000000000..0d4c701f0bfc --- /dev/null +++ b/dev-util/rats/files/rats-2.1-fix-null-pointers.patch @@ -0,0 +1,128 @@ +diff -Nuar rats-2.1.orig/report.c rats-2.1/report.c +--- rats-2.1.orig/report.c 2002-09-16 21:05:43.000000000 -0700 ++++ rats-2.1/report.c 2006-05-21 23:16:16.323046789 -0700 +@@ -122,9 +122,15 @@ + return result; + } + +- +- +- ++/* Exclusively for debugging vulnerabilities. ++ * - robbat2@gentoo.org 21/05/2006 */ ++static void debug_vuln_dump(vulnerability_t *ptr) { ++ fprintf(stderr,"vuln_dump: this=%x f=%s l=%d c=%d d=%x t=%d s=%d u=%x p=(%x,%x)\n", ++ ptr, ++ ptr->filename,ptr->lineno,ptr->column, ++ ptr->data,ptr->type,ptr->severity, ++ ptr->uses,ptr->next,ptr->prev); ++} + + static void + replace_cfname(char *filename) +@@ -317,6 +323,27 @@ + insert_vulnerability(log); + } + ++/* These are special static vulnerabilities because we don't ++ * want NULL data elements in the vulnerability_t->data ++ * field, because the HTML and XML output formats use that ++ * pointer without checking it for being null first. ++ * - robbat2@gentoo.org 21/05/2006 */ ++static struct Vuln_t vuln_PerlBacktick = { ++ .Name = "Perl Backtick" ++}; ++static struct Vuln_t vuln_PhpBacktick = { ++ .Name = "PHP Backtick" ++}; ++static struct Vuln_t vuln_PythonBacktick = { ++ .Name = "Python Backtick" ++}; ++static struct Vuln_t vuln_StaticLocalBuffer = { ++ .Name = "Static Local Buffer" ++}; ++static struct Vuln_t vuln_StaticGlobalBuffer = { ++ .Name = "Static Global Buffer" ++}; ++ + void log_perlbacktick(int lineno, int column, Severity_t severity) + { + vulnerability_t * log; +@@ -325,7 +352,7 @@ + log->filename = current_file; + log->column = column; + log->lineno = lineno; +- log->data = (Vuln_t *)NULL; ++ log->data = &vuln_PerlBacktick; + log->type = PerlBacktick; + log->severity = severity; + log->uses = (toctou_use_t *)NULL; +@@ -342,7 +369,7 @@ + log->filename = current_file; + log->column = column; + log->lineno = lineno; +- log->data = (Vuln_t *)NULL; ++ log->data = &vuln_PhpBacktick; + log->type = PhpBacktick; + log->severity = severity; + log->uses = (toctou_use_t *)NULL; +@@ -358,7 +385,7 @@ + log->filename = current_file; + log->column = column; + log->lineno = lineno; +- log->data = (Vuln_t *)NULL; ++ log->data = &vuln_PythonBacktick; + log->type = PythonBacktick; + log->severity = severity; + log->uses = (toctou_use_t *)NULL; +@@ -374,7 +401,16 @@ + log->filename = current_file; + log->column = column; + log->lineno = lineno; +- log->data = (Vuln_t *)NULL; ++ switch(type) { ++ case StaticLocalBuffer: ++ log->data = &vuln_StaticLocalBuffer; ++ break; ++ case StaticGlobalBuffer: ++ log->data = &vuln_StaticGlobalBuffer; ++ break; ++ default: ++ log->data = (Vuln_t *)NULL; ++ } + log->type = type; + log->severity = severity; + log->uses = (toctou_use_t *)NULL; +@@ -432,6 +468,10 @@ + static void build_xml_vulnerability(vulnerability_t *ptr) { + int i; + ++ /* Debugging - robbat2@gentoo.org 21/05/2006 */ ++ if(ptr->data == NULL) ++ debug_vuln_dump(ptr); ++ + printf("<vulnerability>\n"); + + /* Output the severity */ +@@ -593,6 +633,8 @@ + void report_vulnerability(vulnerability_t *ptr) + { + int i; ++ if(ptr->data == NULL) ++ debug_vuln_dump(ptr); + + switch (ptr->type) + { +@@ -890,8 +932,10 @@ + + static void build_html_vulnerability(vulnerability_t *ptr) { + int i; +- +- ++ ++ /* Debugging - robbat2@gentoo.org 21/05/2006 */ ++ if(ptr->data == NULL) ++ debug_vuln_dump(ptr); + + /* Output the severity */ + printf(" <b>Severity: %s</b><br/>\n", diff --git a/dev-util/rats/metadata.xml b/dev-util/rats/metadata.xml new file mode 100644 index 000000000000..deb7defc3840 --- /dev/null +++ b/dev-util/rats/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> + <email>robbat2@gentoo.org</email> +</maintainer> +<longdescription>RATS - Rough Auditing Tool for Security - is an open source + tool developed and maintained by Secure Software security engineers. RATS + is a tool for scanning C, C++, Perl, PHP and Python source code and + flagging common security related programming errors such as buffer + overflows and TOCTOU (Time Of Check, Time Of Use) race conditions. +</longdescription> +</pkgmetadata> diff --git a/dev-util/rats/rats-2.1-r2.ebuild b/dev-util/rats/rats-2.1-r2.ebuild new file mode 100644 index 000000000000..492229ddc7c2 --- /dev/null +++ b/dev-util/rats/rats-2.1-r2.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=3 +inherit eutils + +DESCRIPTION="RATS - Rough Auditing Tool for Security" +HOMEPAGE="http://www.fortifysoftware.com/security-resources/rats.jsp" +SRC_URI="http://www.fortifysoftware.com/servlet/downloads/public/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +IUSE="" + +DEPEND="dev-libs/expat" + +src_prepare() { + epatch "${FILESDIR}"/${P}-add-getopt-trailing-null.patch + epatch "${FILESDIR}"/${P}-fix-null-pointers.patch +} + +src_configure() { + econf --datadir="${EPREFIX}/usr/share/${PN}/" +} + +src_install () { + einstall SHAREDIR="${ED}/usr/share/${PN}" MANDIR="${ED}/usr/share/man" + dodoc README README.win32 +} + +pkg_postinst() { + ewarn "Please be careful when using this program with it's force language" + ewarn "option, '--language <LANG>' it may take huge amounts of memory when" + ewarn "it tries to treat binary files as some other type." +} diff --git a/dev-util/rats/rats-2.3.ebuild b/dev-util/rats/rats-2.3.ebuild new file mode 100644 index 000000000000..a8b2c1fd6d2e --- /dev/null +++ b/dev-util/rats/rats-2.3.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=3 +inherit eutils + +DESCRIPTION="RATS - Rough Auditing Tool for Security" +HOMEPAGE="https://code.google.com/p/rough-auditing-tool-for-security/" +SRC_URI="https://rough-auditing-tool-for-security.googlecode.com/files/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +IUSE="" + +DEPEND="dev-libs/expat" + +src_prepare() { + edos2unix $(find "${S}" -name '*.[chl]' -o -name '*.in' -o -name '*.am') + epatch "${FILESDIR}"/${PN}-2.1-add-getopt-trailing-null.patch + epatch "${FILESDIR}"/${PN}-2.1-fix-null-pointers.patch +} + +src_configure() { + econf --datadir="${EPREFIX}/usr/share/${PN}/" +} + +src_install () { + einstall SHAREDIR="${ED}/usr/share/${PN}" MANDIR="${ED}/usr/share/man" + dodoc README README.win32 +} + +pkg_postinst() { + ewarn "Please be careful when using this program with it's force language" + ewarn "option, '--language <LANG>' it may take huge amounts of memory when" + ewarn "it tries to treat binary files as some other type." +} |