Compare commits

...
81 Commits
Author SHA1 Message Date
Colin Percival d8ba0a6a45 FreeBSD-SA-04:16.fetch:
MFC revision 1.75 of src/usr.bin/fetch/fetch.c
Bump newvers.sh and document in UPDATING.

Approved by:	so
2004-11-18 12:06:51 +00:00
Dag-Erling Smørgrav 73dc22f454 Merge updated patch from vendor branch (1.1.1.17)
Approved by:	so
2004-05-20 13:18:10 +00:00
Dag-Erling Smørgrav 1a2217699e Bump and document patch level.
Approved by:	so
2004-05-19 06:40:56 +00:00
Dag-Erling Smørgrav 3ffd75c607 Merge parser fix from vendor branch (rev 1.1.1.16)
Approved by:	so
2004-05-19 06:19:57 +00:00
Jacques Vidrine f65ff4e7c6 MFC in part tcp_input.c 1.228, tcp_subr.c 1.182, tcp_var.h 1.98:
Limit TCP segment reassembly queue size.
2004-03-17 10:50:46 +00:00
Jacques Vidrine 3a8a551a35 MFC sysv_shm.c 1.90: Correct a reference counting bug in shmat(2). 2004-02-05 18:01:26 +00:00
Dag-Erling Smørgrav 822cf828bd Document the recent commits to src/usr.bin/gensetdefs/gensetdefs.c and
their (non-security-related) purpose.

Requested by:	imp
Approved by:	so (nectar)
2004-02-02 17:43:38 +00:00
Dag-Erling Smørgrav b50e15ece2 MFS (1.4.2.1): fix syntax errors which trip up newer gcc versions.
This allows building a RELENG_4_7 world on a -CURRENT system.

Approved by:	so (nectar)
2004-02-02 12:34:14 +00:00
Jacques Vidrine 11682cc975 Correct a remote denial-of-service attack in named(8). 2003-11-27 16:40:03 +00:00
Jacques Vidrine 1d8f2471a7 MFS 1.10.2.5: Unbreak read/write behavior (introduced in previous revision). 2003-10-04 16:14:25 +00:00
Jacques Vidrine d28ce3879b Correct vulnerabilities in OpenSSL ASN.1 parsing.
Obtained from:	openssl.org CVS
2003-10-03 20:24:59 +00:00
Jacques Vidrine 5b0811458a Merge from RELENG_4: kern_subr.c 1.31.2.3, procfs_dbregs.c 1.4.2.4,
procfs_fpregs.c 1.11.2.4, procfs_regs.c 1.10.2.4,
    procfs_rlimit.c 1.5.2.1, procfs_status.c 1.20.2.5, uio.h 1.11.2.2,
    linprocfs_misc.c 1.3.2.9.
Correct several integer underflows/overflows in procfs and linprocfs.
2003-10-03 13:07:38 +00:00
Jacques Vidrine 9fd7edd220 MFS 1.55.2.11: Correct a reference counting bug in readv(2). 2003-10-02 15:58:53 +00:00
Jacques Vidrine 7004eb8b27 Bump patch level for updated arplookup fix. 2003-09-25 13:35:48 +00:00
Bruce M Simpson aec1f26336 Fix a logic error in the check to see if arplookup() should free the route.
Noticed by:	Mike Hogsett
Reviewed by:	ru
2003-09-24 21:51:13 +00:00
Dag-Erling Smørgrav 0663741aa6 Update patch level 2003-09-24 21:06:28 +00:00
Dag-Erling Smørgrav d9499bad27 Update version string. 2003-09-24 19:54:21 +00:00
Dag-Erling Smørgrav 1fb7572cae MFS: plug a resource leak in ssh1 challenge/response code. 2003-09-24 19:53:37 +00:00
Dag-Erling Smørgrav a9305a37cf MFC: (1.13) remove bogus calls to xfree(). 2003-09-24 19:16:50 +00:00
Dag-Erling Smørgrav 87b6804194 MFC: (1.12) resp is a pointer to an array of structs. 2003-09-24 18:32:22 +00:00
Bruce M Simpson dbede30fe3 Fix a bug in arplookup(), whereby a hostile party on a locally
attached network could exhaust kernel memory, and cause a system
panic, by sending a flood of spoofed ARP requests.

Approved by:	security-officer, jake (mentor)
Reported by:	Apple Product Security <[email protected]>
2003-09-23 16:54:39 +00:00
Gregory Neil Shapiro 11fe7bc3c1 MFC: sendmail address parsing bug fix
Approved by:	so (nectar)
2003-09-17 20:22:03 +00:00
Jacques Vidrine 5232c9cc42 MFC buffer.c 1.2, channels.c 1.16, deattack.c 1.1.1.6, misc.c 1.1.1.5,
session.c 1.41, ssh-agent.c 1.19:
Correct more cases of allocation size bookkeeping errors.
2003-09-17 14:52:43 +00:00
Jacques Vidrine 971a9eeda4 MFC buffer.c 1.1.1.7: Do not record expanded size before attempting to
reallocate associated memory.
2003-09-16 16:45:16 +00:00
Jacques Vidrine 0f9b4511e5 Merge sm_resolve.c 1.229.2.17: Fix for DNS map processing error. 2003-08-25 22:38:53 +00:00
Jacques Vidrine c792c7dda4 Fix typo: uap->data' versus data'.
Noticed by:	Anil <[email protected]>, Bruce M Simpson <[email protected]>
2003-08-11 10:14:38 +00:00
Jacques Vidrine 1bdb86a24c MFC 1.24: Validate the iBCS2 statfs(2) length parameter. 2003-08-10 23:35:21 +00:00
Jacques Vidrine 48ead34f91 MFC sys_process.c 1.113, spigot.c 1.60:
Add or correct range checking of signal numbers in system calls and
ioctls.
2003-08-10 23:23:57 +00:00
Jacques Vidrine 11b3430337 realpath(3) bug fix: There was an off-by-one error in computing the
size of the resulting canonical path.
2003-08-03 23:47:39 +00:00
Gregory Neil Shapiro bcf84153c8 Update FreeBSD Security Advisory Number
Approved by:	so (nectar)
2003-03-29 21:58:11 +00:00
Gregory Neil Shapiro 4d70fecff9 sendmail parsing buffer overflow fix
Advisory number to be filled in later

Approved by:	so (nectar)
2003-03-29 20:13:35 +00:00
Chris D. Faulhaber 78f9ef7a8f MFC: crypto/openssl/ssl/s3_srvr.c 1.1.1.11
Import of PKCS #1 security fix.
       http://www.openssl.org/news/secadv_20030319.txt

MFC: crypto/openssl/crypto/rsa/rsa_eay.c 1.11
     crypto/openssl/crypto/rsa/rsa_lib.c  1.9
     Enable RSA blinding by default.
       http://www.openssl.org/news/secadv_20030317.txt
2003-03-21 16:13:07 +00:00
Chris D. Faulhaber a9c64d56cb MFC:
src/lib/libc/xdr/xdr_mem.c 1.12
  src/include/rpc/xdr.h      1.23

Clean up some signed/unsigned issues in the XDR code.
2003-03-20 13:05:28 +00:00
Gregory Neil Shapiro 4817ee36a3 FreeBSD-SA-03:04.sendmail: sendmail header parsing buffer overflow
Approved by:    security-officer (nectar)
2003-03-03 17:23:11 +00:00
Jacques Vidrine e93e1ddabb MFC tcp_syncache.c 1.38: Improve security and performance of syncookies. 2003-02-23 20:19:43 +00:00
Jacques Vidrine 4c8f8cd8d0 Merge from RELENG_5_0: Update to OpenSSL 0.9.6i. 2003-02-20 20:42:20 +00:00
Jacques Vidrine ff40e40b77 Add touch to bootstap-tools. It appears to be necessary in order
to make release RELENG_4_7 on later 4.x or 5.x systems.
2003-02-20 20:39:31 +00:00
Jacques Vidrine 32b03bd58e Correct a double-free bug and disable a dangerous feature in
cvs.

See <URL:http://online.securityfocus.com/archive/1/72584>,
<URL:http://security.e-matters.de/advisories/012003.html>,
and the soon-to-be-released FreeBSD-SA-03:01.cvs for details.
2003-02-04 18:08:27 +00:00
Jacques Vidrine 6127c2ded5 -- Emphasize on the first line that this is a security branch (and which
branch specifically).
-- Update imp's copyright to 2003.
-- Add some boiler-plate text for security branches that was missing.
2003-01-31 12:48:07 +00:00
cvs2svn fb6eda1daf This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2003-01-28 21:43:26 +00:00
Jacques Vidrine a8e5f1f55c MFC 1.114: Fix a file descriptor leak in fpathconf(2). 2003-01-06 12:38:21 +00:00
Jacques Vidrine 7f06ea530f Correct recent name server vulnerabilities as documented at
<URL:http://www.isc.org/products/BIND/bind-security.html> and
<URL:http://bvlive01.iss.net/issEn/delivery/xforce/alertdetail.jsp?oid=21469>.

Obtained from:	ISC
2002-11-14 02:05:57 +00:00
Chris D. Faulhaber e9cd526b6e Arghh, apply -p1 to BRANCH, not REVISION.
Submitted by:	Andrew <[email protected]>
2002-10-24 00:18:46 +00:00
Hajimu UMEMOTO 096d5f48a2 MFS: Allocate 64K recieve buffer for DNS responses.
lib/libc/net/gethostbydns.c:    1.27.2.4
	lib/libc/net/getnetbydns.c:     1.13.2.4

Approved by:	security-officer
2002-10-23 14:45:25 +00:00
Chris D. Faulhaber fc0777fdfb Update UPDATING and bump patch level for tar(1) and kadmind fixes. 2002-10-23 14:10:32 +00:00
Assar Westerlund 12823be7ea MFC kadm_ser_wrap.c:1.1.1.4: fix buffer overflow
MFC updating kerberosIV and kerberos5 versions consistenly

Approved by:	security-officer
Obtained from:	kth-krb CVS
2002-10-23 13:21:32 +00:00
Assar Westerlund 739d290a6c import 1.27 to fix buffer overflow:
check size of rlen

Approved by:	security-officer
Obtained from:	Heimdal CVS
2002-10-22 03:43:30 +00:00
Maxim Sobolev bfa4d536d2 MFS: fix security bug in contains_dot_dot routine.
Approved by:	jedgar (on behalf of the SO team)
2002-10-21 10:44:15 +00:00
Udo Erdelhoff 601c4955b9 DE release notes catchup for RELENG_4_7, Phase 2 of 2, framework fixes:
- remove the localized release.ent from cvs and catalog
- change all articles to use the global release.ent, not the local one
- bring the release.dsl into sync with the english version

Note: There is no phase 3 for the RELENG_4_7 stuff because there have
been no changes to the english release notes except framework stuff

Reviewed by:	re, security-officer
Approved by:	bmah
2002-10-17 10:56:52 +00:00
Udo Erdelhoff aa452a81f6 Bring DE translation of the RELENG_4_7 release notes up to speed
Phase 1 of 3: Catch up to RELENG_4_7_BP

Reviewed by:	re, security-officer
Approved by:	bmah
2002-10-16 19:01:50 +00:00
Bruce A. Mah 486ebdf386 Note the release date of 4.7-RELEASE.
Approved by:	security-officer (implicitly)
2002-10-10 16:22:29 +00:00
Bruce A. Mah 18d96317a1 MFS: Teach pkg_add -r how to find 4.7-RELEASE packages with an appropriate
osreldate.

Approved by:	re
2002-10-08 05:39:07 +00:00
Murray Stokely 68a0a8fbec MFC: Add FreeBSD 4.7.
Approved by:	 re
2002-10-08 05:32:52 +00:00
Bruce A. Mah 43837e2288 Update BASE for 4.7.
Approved by:	re
2002-10-08 05:09:48 +00:00
Murray Stokely 62d02dc863 Bump __FreeBSD_version for 4.7-RELEASE. 2002-10-08 04:59:24 +00:00
Murray Stokely 909c082ec1 Enter 4.7-RELEASE. 2002-10-08 04:48:46 +00:00
Bruce A. Mah 86c7ef7872 MFS: Fix smrsh bypass bug.
Obtained from:	sendmail.org
Approved by:	security-officer (jedgar), re (murray)
2002-10-08 00:57:20 +00:00
John Baldwin ac88a0a707 MFS: Range check fix and handle SMP races in i386_set_ldt().
Approved by:	re
2002-10-07 17:37:39 +00:00
John Baldwin e0fb848ab2 MFS: Unsigned start/num args for i386_set_ldt().
Approved by:	re
2002-10-07 17:36:04 +00:00
Bruce A. Mah 5c2f5d6243 Remove footer implying that readers (for this RELEASE) need to read
stable@.

Bump FreeBSD version number for manpage entities.
2002-10-06 21:37:39 +00:00
Bruce A. Mah 2bc4e74f3a Use an appropriate directory when updating RELNOTESng snapshot site.
Approved by:	re (implicitly)
2002-10-06 21:00:19 +00:00
Bruce A. Mah 4026f294fb Bump version number (and related) entities for 4.7-RELEASE.
Approved by:	re (implicitly)
2002-10-06 20:58:46 +00:00
Murray Stokely 0b909877cf Track RELENG_4_7 rather than RELENG_4_6.
Approved by:	 re
2002-10-06 19:27:08 +00:00
Murray Stokely 37cdba40e6 Update default .Os value for man pages.
Approved by:   re
2002-10-06 19:24:53 +00:00
Murray Stokely 22381f1a11 The "update" target should track RELENG_4_7 here.
Approved by: re
2002-10-06 19:22:15 +00:00
cvs2svn 727591c126 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-10-05 19:53:19 +00:00
cvs2svn c826cdb249 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-09-25 23:22:15 +00:00
cvs2svn 38d3020be4 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-09-17 02:59:26 +00:00
cvs2svn cd741eae0a This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-09-17 02:59:25 +00:00
cvs2svn e647b9b1e2 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-09-03 01:50:24 +00:00
cvs2svn 8e57c3cfe9 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-09-01 06:32:48 +00:00
cvs2svn 893abf9888 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-30 21:40:59 +00:00
cvs2svn 3d71b01065 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-30 18:26:50 +00:00
cvs2svn 5a490f9a9a This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-14 16:58:51 +00:00
cvs2svn 3b376d0478 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-13 17:02:59 +00:00
cvs2svn 5f7643cd64 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-07 16:29:49 +00:00
cvs2svn b67739b62d This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-06 08:24:48 +00:00
cvs2svn aa9dbec26b This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2002-08-04 20:43:23 +00:00
cvs2svn 75cc813f6c This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2001-09-28 17:50:18 +00:00
cvs2svn 69a4e11c89 This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2000-10-21 01:42:53 +00:00
cvs2svn 40dfd7de5c This commit was manufactured by cvs2svn to create branch 'RELENG_4_7'. 2000-09-30 02:49:38 +00:00
464 changed files with 3485 additions and 41742 deletions

No files matched your search

+2 -2
View File
@@ -527,7 +527,7 @@ update:
@echo "--------------------------------------------------------------"
@echo ">>> Updating ${.CURDIR} from cvs repository" ${CVSROOT}
@echo "--------------------------------------------------------------"
cd ${.CURDIR}; cvs -q update -rRELENG_4 -P -d
cd ${.CURDIR}; cvs -q update -rRELENG_4_7 -P -d
.endif
#
@@ -577,7 +577,7 @@ _strfile= games/fortune/strfile
bootstrap-tools:
.for _tool in ${_strfile} usr.bin/yacc usr.bin/colldef \
usr.bin/uudecode usr.bin/xinstall \
usr.bin/uudecode usr.bin/xinstall usr.bin/touch \
usr.sbin/config \
gnu/usr.bin/gperf gnu/usr.bin/groff gnu/usr.bin/texinfo
${ECHODIR} "===> ${_tool}"; \
+111 -2
View File
@@ -1,4 +1,4 @@
Updating Information for FreeBSD STABLE users
Updating Information for FreeBSD 4.7 Security Branch (RELENG_4_7) users.
This file is maintained and copyrighted by M. Warner Losh
<[email protected]>. See end of file for further details. For commonly
@@ -8,6 +8,115 @@ A reverse chronology since 4.0 was released is included, followed by
the common items quick how-tos, followed by entries for versions of
-current prior to 4.0 Release.
This is for the 4.7 release branch. All entries since 4.7 are an
itemized list of commits to this branch, numbered from the beginning.
The security advisories related to various patches contain information
on how to build/install a minimal set of binaries and start/stop a
minimal number of processes, if possible, for that patch. For those
updates that don't have an advisory, or to be safe, you can do a full
build and install as described in the COMMON ITEMS section.
20041118: p28 FreeBSD-SA-04:16.fetch
Correct a buffer overflow in fetch(1) which could allow a
mallicious server to execute arbitrary code on the client.
20040519: p27 FreeBSD-SA-04:10.cvs
Correct a heap overflow in cvs's pserver protocol parser.
20040317: p26 FreeBSD-SA-04:04.tcp
Limit TCP segment reassembly queue size.
20040205: p25 FreeBSD-SA-04:02.shmat
Correct a reference counting bug in shmat(2).
20040202:
Fixed a syntax issue in gensetdefs(8) sources which tripped up
newer compilers. This has no impact on security, but allows
cross-building 4.7 on a 5.x system.
20031126: p24 FreeBSD-SA-03:19.bind
Corrected remote denial-of-service vulnerability in named(8).
20031003: p23 FreeBSD-SA-03:18.openssl
Corrected vulnerabilities in OpenSSL ASN.1 parsing.
20031003: p22 FreeBSD-SA-03:17.procfs
Correct integer underflows/overflows in procfs(5) and linprocfs(5).
20031002: p21 FreeBSD-SA-03:16.filedesc
Correct a reference counting bug in readv(2).
20030924: p20 FreeBSD-SA-03:14.arp
Updated fix for arplookup bug.
20030924: p19 FreeBSD-SA-03:15.openssh
Fix PAM-related bugs in OpenSSH's challenge/response code.
20030923: p18 FreeBSD-SA-03:14.arp
Fix a bug in arplookup(), whereby a hostile party on a locally
attached network could exhaust kernel memory, and cause a system
panic, by sending a flood of spoofed ARP requests.
20030917: p17 FreeBSD-SA-03:13.sendmail
Fix another address parsing buffer overflow.
20030916: p16 FreeBSD-SA-03:12.openssh
Follow-up fixes for OpenSSH oversized packet buffer handling.
20030916: p15 FreeBSD-SA-03:12.openssh
OpenSSH oversized packet buffer handling corrected.
20030825: p14 FreeBSD-SA-03:11.sendmail
Sendmail DNS map problem corrected.
20030810: p13 FreeBSD-SA-03:10.iBCS2
iBCS2 system call translator for statfs leaked information.
20030810: p12 FreeBSD-SA-03:09.signal
Repair range-checking errors in signal handling.
20030804: p11 FreeBSD-SA-03:08.realpath
Correct a single byte buffer overflow in realpath(3).
20030329: p10 FreeBSD-SA-03:07.sendmail
sendmail address parsing buffer overflow.
20030321: p9 FreeBSD-SA-03:06.openssl
enable RSA blinding by default
fix PKCS #1 v1.5 padding vulnerability
20030320: p8 FreeBSD-SA-03:05.xdr
integer overflow errors in the Sun XDR library.
20030303: p7 FreeBSD-SA-03:04.sendmail
sendmail header parsing buffer overflow, ident parsing bug.
20030223: p6 FreeBSD-SA-03:03.syncookies
Make brute force attacks on syncookies much more difficult.
20030220: p5 FreeBSD-SA-03:02.openssl
Update to OpenSSL 0.9.6i in order to correct `Timing-based
attacks on SSL/TLS with CBC encryption' vulnerability.
20030204: p4 FreeBSD-SA-03:01.cvs
Correct a double-free bug and disable a dangerous feature in
cvs.
20030106: p3 FreeBSD-SA-02:44.filedesc
Correct a reference counting bug in fpathconf(2).
20021113: p2 FreeBSD-SA-02:43.bind
Correct name server vulnerabilities.
20021023: p1 FreeBSD-SA-02:40.kadmind
Correct bug in the tar(1) contains_dot_dot function allowing
files to be extracted outside the intended directory tree.
Correct kadmind buffer overflow.
20021010:
FreeBSD 4.7-RELEASE.
20020807:
COPY is being deprecated. The 20020703 change was reverted, as
it causes far more pain than was expected, and to always compare
@@ -1102,7 +1211,7 @@ that the style, formatting, etc of this file can be maintained.
Copyright information:
Copyright 1998-2002 M. Warner Losh. All Rights Reserved.
Copyright 1998-2003 M. Warner Losh. All Rights Reserved.
Redistribution, translation and use, with or without modification, in
full or in part, are permitted provided that the above copyright
+20
View File
@@ -1,3 +1,23 @@
1469. [bug] buffer length calculation for PX was wrong.
1468. [bug] ns_name_ntol() could overwite a zero length buffer.
1467. [bug] off by one bug in ns_makecannon().
1466. [bug] large ENDS UDP buffer size could trigger a assertion.
1465. [bug] possible NULL pointer dereference in db_sec.c
1464. [bug] the buffer used to construct the -ve record was not
big enough for all possible SOA records. use pointer
arithmetic to calculate the remaining size in this
buffer.
1463. [bug] use serial space arithmetic to determine if a SIG is
too old, in the future or has internally constistant
times.
1462. [bug] write buffer overflow in make_rr().
--- 8.3.3-REL released --- (Wed Jun 26 21:15:43 PDT 2002)
+1 -1
View File
@@ -1 +1 @@
8.3.3-REL
8.3.3-REL-p1
+1 -1
View File
@@ -78,7 +78,7 @@
*/
/* max length of data in RR data field */
#define MAXDATA (2*MAXDNAME + 5*INT32SZ)
#define MAXDATA (3*MAXDNAME + 5*INT32SZ)
/* max length of data in a TXT RR segment */
#define MAXCHARSTRING 255
+10 -4
View File
@@ -479,7 +479,9 @@ verify_set(struct db_rrset *rrset) {
struct sig_record *sigdata;
struct dnode *sigdn;
struct databuf *sigdp;
time_t now;
u_int32_t now;
u_int32_t exptime;
u_int32_t signtime;
char *signer;
u_char name_n[MAXDNAME];
u_char *sig, *eom;
@@ -492,6 +494,7 @@ verify_set(struct db_rrset *rrset) {
int dnssec_failed = 0, dnssec_succeeded = 0;
int return_value;
int i;
int expired = 0;
if (rrset == NULL || rrset->rr_name == NULL) {
ns_warning (ns_log_default, "verify_set: missing rrset/name");
@@ -527,11 +530,14 @@ verify_set(struct db_rrset *rrset) {
* Don't verify a set if the SIG inception time is in
* the future. This should be fixed before 2038 (BEW)
*/
if ((time_t)ntohl(sigdata->sig_time_n) > now)
signtime = ntohl(sigdata->sig_time_n);
if (SEQ_GT(signtime, now))
continue;
/* An expired set is dropped, but the data is not. */
if ((time_t)ntohl(sigdata->sig_exp_n) < now) {
exptime = ntohl(sigdata->sig_exp_n);
if (SEQ_GT(now, exptime)) {
expired++;
db_detach(&sigdn->dp);
sigdp = NULL;
continue;
@@ -723,7 +729,7 @@ verify_set(struct db_rrset *rrset) {
}
end:
if (dnssec_failed > 0)
if (dnssec_failed > 0 || expired > 0)
rrset_trim_sigs(rrset);
if (trustedkey == 0 && key != NULL)
dst_free_key(key);
+1 -1
View File
@@ -469,7 +469,7 @@ struct qinfo {
q_cmsglen, /* len of cname message */
q_cmsgsize; /* allocated size of cname message */
int16_t q_dfd; /* UDP file descriptor */
int16_t q_udpsize; /* UDP message size */
u_int16_t q_udpsize; /* UDP message size */
int q_distance; /* distance this query is from the
* original query that the server
* received. */
+6 -7
View File
@@ -66,7 +66,7 @@ cache_n_resp(u_char *msg, int msglen, struct sockaddr_in from,
u_int16_t atype;
u_char *sp, *cp1;
u_char data[MAXDATA];
size_t len = sizeof data;
u_char *eod = data + sizeof(data);
#endif
nameserIncr(from.sin_addr, nssRcvdNXD);
@@ -186,7 +186,7 @@ cache_n_resp(u_char *msg, int msglen, struct sockaddr_in from,
rdatap = cp;
/* origin */
n = dn_expand(msg, msg + msglen, cp, (char*)data, len);
n = dn_expand(msg, msg + msglen, cp, (char*)data, eod - data);
if (n < 0) {
ns_debug(ns_log_ncache, 3,
"ncache: origin form error");
@@ -195,9 +195,8 @@ cache_n_resp(u_char *msg, int msglen, struct sockaddr_in from,
cp += n;
n = strlen((char*)data) + 1;
cp1 = data + n;
len -= n;
/* mail */
n = dn_expand(msg, msg + msglen, cp, (char*)cp1, len);
n = dn_expand(msg, msg + msglen, cp, (char*)cp1, eod - cp1);
if (n < 0) {
ns_debug(ns_log_ncache, 3, "ncache: mail form error");
return;
@@ -205,20 +204,20 @@ cache_n_resp(u_char *msg, int msglen, struct sockaddr_in from,
cp += n;
n = strlen((char*)cp1) + 1;
cp1 += n;
len -= n;
n = 5 * INT32SZ;
if (n > (eod - cp1)) /* Can't happen. See MAXDATA. */
return;
BOUNDS_CHECK(cp, n);
memcpy(cp1, cp, n);
/* serial, refresh, retry, expire, min */
cp1 += n;
len -= n;
cp += n;
if (cp != rdatap + dlen) {
ns_debug(ns_log_ncache, 3, "ncache: form error");
return;
}
/* store the zone of the soa record */
n = dn_expand(msg, msg + msglen, sp, (char*)cp1, len);
n = dn_expand(msg, msg + msglen, sp, (char*)cp1, eod - cp1);
if (n < 0) {
ns_debug(ns_log_ncache, 3, "ncache: form error 2");
return;
+1 -1
View File
@@ -2195,7 +2195,7 @@ make_rr(const char *name, struct databuf *dp, u_char *buf,
/* first just copy over the type_covered, algorithm, */
/* labels, orig ttl, two timestamps, and the footprint */
if ((dp->d_size - 18) > buflen)
if (buflen < 18)
goto cleanup; /* out of room! */
memcpy(cp, cp1, 18);
cp += 18;
+22 -6
View File
@@ -272,7 +272,7 @@ ns_resp(u_char *msg, int msglen, struct sockaddr_in from, struct qstream *qsp)
u_int qtype, qclass;
int restart; /* flag for processing cname response */
int validanswer, dbflags;
int cname, lastwascname, externalcname;
int cname, lastwascname, externalcname, cachenegative;
int count, founddata, foundname;
int buflen;
int newmsglen;
@@ -912,6 +912,7 @@ tcp_retry:
cname = 0;
lastwascname = 0;
externalcname = 0;
cachenegative = 1;
strcpy(aname, qname);
if (count) {
@@ -981,6 +982,7 @@ tcp_retry:
name);
db_detach(&dp);
validanswer = 0;
cachenegative = 0;
continue;
}
if (type == T_CNAME &&
@@ -1011,6 +1013,7 @@ tcp_retry:
"last was cname, ignoring auth. and add.");
db_detach(&dp);
validanswer = 0;
cachenegative = 0;
break;
}
if (i < arfirst) {
@@ -1026,6 +1029,7 @@ tcp_retry:
sin_ntoa(from));
db_detach(&dp);
validanswer = 0;
cachenegative = 0;
continue;
} else if (!ns_samedomain(name,
qp->q_domain)) {
@@ -1039,6 +1043,7 @@ tcp_retry:
sin_ntoa(from));
db_detach(&dp);
validanswer = 0;
cachenegative = 0;
continue;
}
if (type == T_NS) {
@@ -1231,8 +1236,9 @@ tcp_retry:
)
)
{
cache_n_resp(msg, msglen, from, qp->q_name,
qp->q_class, qp->q_type);
if (cachenegative)
cache_n_resp(msg, msglen, from, qp->q_name,
qp->q_class, qp->q_type);
if (!qp->q_cmsglen && validanswer) {
ns_debug(ns_log_default, 3,
@@ -2001,7 +2007,7 @@ rrextract(u_char *msg, int msglen, u_char *rrp, struct databuf **dpp,
* to BOUNDS_CHECK() here.
*/
cp1 += (n = strlen((char *)cp1) + 1);
n1 = sizeof(data) - n;
n1 = sizeof(data) - n - INT16SZ;
n = dn_expand(msg, eom, cp, (char *)cp1, n1);
if (n < 0) {
hp->rcode = FORMERR;
@@ -2043,8 +2049,18 @@ rrextract(u_char *msg, int msglen, u_char *rrp, struct databuf **dpp,
ttl = origTTL;
}
/*
* Check that expire and signature times are internally
* consistant.
*/
if (!SEQ_GT(exptime, signtime) && exptime != signtime) {
ns_debug(ns_log_default, 3,
"ignoring SIG: signature expires before it was signed");
return ((cp - rrp) + dlen);
}
/* Don't let bogus signers "sign" in the future. */
if (signtime > now) {
if (SEQ_GT(signtime, now)) {
ns_debug(ns_log_default, 3,
"ignoring SIG: signature date %s is in the future",
p_secstodate (signtime));
@@ -2052,7 +2068,7 @@ rrextract(u_char *msg, int msglen, u_char *rrp, struct databuf **dpp,
}
/* Ignore received SIG RR's that are already expired. */
if (exptime <= now) {
if (SEQ_GT(now, exptime)) {
ns_debug(ns_log_default, 3,
"ignoring SIG: expiration %s is in the past",
p_secstodate (exptime));
+4
View File
@@ -341,6 +341,10 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
dn = dst;
eom = dst + dstsiz;
if (dn >= eom) {
errno = EMSGSIZE;
return (-1);
}
while ((n = *cp++) != 0) {
if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
/* Some kind of compression pointer. */
+1 -1
View File
@@ -166,7 +166,7 @@ int
ns_makecanon(const char *src, char *dst, size_t dstsize) {
size_t n = strlen(src);
if (n + sizeof "." > dstsize) {
if (n + sizeof "." + 1 > dstsize) {
errno = EMSGSIZE;
return (-1);
}
-82
View File
@@ -1,82 +0,0 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Copyright 1999, 2000 Free Software Foundation, Inc.
# Written by Tom Tromey <[email protected]>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Usage:
# compile PROGRAM [ARGS]...
# `-o FOO.o' is removed from the args passed to the actual compile.
prog=$1
shift
ofile=
cfile=
args=
while test $# -gt 0; do
case "$1" in
-o)
ofile=$2
shift
;;
*.c)
cfile=$1
args="$args $1"
;;
*)
args="$args $1"
;;
esac
shift
done
test -z "$ofile" && {
echo "compile: no \`-o' option seen" 1>&2
exit 1
}
test -z "$cfile" && {
echo "compile: no \`.c' file seen" 1>&2
exit 1
}
# Name of file we expect compiler to create.
cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
lockdir=`echo $ofile | sed -e 's|/|_|g'`
while true; do
if mkdir $lockdir > /dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir $lockdir; exit 1" 1 2 15
# Run the compile.
"$prog" $args
status=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
fi
rmdir $lockdir
exit $status
File diff suppressed because it is too large. Load diff
-92
View File
@@ -1,92 +0,0 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <[email protected]>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
# Find the month. Next argument is day, followed by the year or time.
month=
until test $month
do
shift
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
done
day=$2
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
case $3 in
*:*) set `date`; eval year=\$$#
case $2 in
Jan) nummonthtod=1;;
Feb) nummonthtod=2;;
Mar) nummonthtod=3;;
Apr) nummonthtod=4;;
May) nummonthtod=5;;
Jun) nummonthtod=6;;
Jul) nummonthtod=7;;
Aug) nummonthtod=8;;
Sep) nummonthtod=9;;
Oct) nummonthtod=10;;
Nov) nummonthtod=11;;
Dec) nummonthtod=12;;
esac
# For the first six month of the year the time notation can also
# be used for files modified in the last year.
if (expr $nummonth \> $nummonthtod) > /dev/null;
then
year=`expr $year - 1`
fi;;
*) year=$3;;
esac
# The result.
echo $day $month $year
-4
View File
@@ -1,4 +0,0 @@
@set UPDATED 5 September 2001
@set UPDATED-MONTH September 2001
@set EDITION 1.11.2
@set VERSION 1.11.2
-4
View File
@@ -1,4 +0,0 @@
@set UPDATED 17 April 2002
@set UPDATED-MONTH April 2002
@set EDITION 1.11.2
@set VERSION 1.11.2
-4
View File
@@ -1,4 +0,0 @@
@set UPDATED 5 September 2001
@set UPDATED-MONTH September 2001
@set EDITION 1.11.2
@set VERSION 1.11.2
-4
View File
@@ -1,4 +0,0 @@
@set UPDATED 17 April 2002
@set UPDATED-MONTH April 2002
@set EDITION 1.11.2
@set VERSION 1.11.2
-92
View File
@@ -1,92 +0,0 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <[email protected]>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
# Find the month. Next argument is day, followed by the year or time.
month=
until test $month
do
shift
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
done
day=$2
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
case $3 in
*:*) set `date`; eval year=\$$#
case $2 in
Jan) nummonthtod=1;;
Feb) nummonthtod=2;;
Mar) nummonthtod=3;;
Apr) nummonthtod=4;;
May) nummonthtod=5;;
Jun) nummonthtod=6;;
Jul) nummonthtod=7;;
Aug) nummonthtod=8;;
Sep) nummonthtod=9;;
Oct) nummonthtod=10;;
Nov) nummonthtod=11;;
Dec) nummonthtod=12;;
esac
# For the first six month of the year the time notation can also
# be used for files modified in the last year.
if (expr $nummonth \> $nummonthtod) > /dev/null;
then
year=`expr $year - 1`
fi;;
*) year=$3;;
esac
# The result.
echo $day $month $year
-92
View File
@@ -1,92 +0,0 @@
#! /bin/sh
# Let autoconf run when this is set
autoconf=:
usage()
{
echo "usage: `basename $0` --help | --version"
echo "usage: `basename $0` [--[no]autoconf]"
}
help()
{
echo
echo "This program will touch the files necessary to prevent Automake, aclocal,"
echo "and, optionally, Autoheader, Autoconf, and configure from running after a"
echo "fresh update from the CVS repository."
echo
echo " -h | --help Display this text and exit"
echo " -V | --version Display version and exit"
echo " -a | --autoconf Allow Autoconf & Autoheader to run (default)"
echo " -A | --noautoconf Prevent Autoconf & Autoheader from running"
echo
echo "Not running Automake & aclocal causes changes to the following user files"
echo "to be ignored:"
echo
echo " Makefile.am, acinclude.m4, configure.in"
echo
echo "Not running Autoconf & Autoheader causes changes to the following user"
echo "files to be ignored:"
echo
echo " acconfig.h, configure.in"
}
while getopts VACach-: opt; do
if test "x$opt" = "x-"; then
case $OPTARG in
help)
opt=h
;;
version)
opt=V
;;
autoconf)
opt=a
;;
noautoconf)
opt=A
;;
*)
opt=?
;;
esac
fi
case $opt in
h)
usage
help
exit 0
;;
V)
echo "CVS No Automake 0.1"
exit 0
;;
A)
autoconf=false
;;
a)
autoconf=:
;;
?)
usage >&2
exit 2
;;
esac
done
# prevent aclocal from running
find . -name aclocal.m4 -exec touch {} \;
# prevent Automake from running
find . -name Makefile.in -exec touch {} \;
# prevent Autoheader from running
if $autoconf; then :; else
find . -name 'stamp-h?.in' -exec touch {} \;
fi
# prevent Autoconf from running
if $autoconf; then :; else
find . -name configure -exec touch {} \;
fi
-37
View File
@@ -1,37 +0,0 @@
/*
* Copyright (c) 2001, Derek Price and others
* Copyright (c) 1992, Brian Berliner and Jeff Polk
* Copyright (c) 1989-1992, Brian Berliner
*
* You may distribute under the terms of the GNU General Public License as
* specified in the README file that comes with the CVS kit.
*/
/* CVSroot data structures */
/* Access method specified in CVSroot. */
typedef enum {
null_method,
local_method,
server_method,
pserver_method,
kserver_method,
gserver_method,
ext_method,
fork_method
} CVSmethod;
extern char *method_names[]; /* change this in root.c if you change
the enum above */
typedef struct cvsroot_s {
char *original; /* the complete source CVSroot string */
CVSmethod method; /* one of the enum values above */
char *username; /* the username or NULL if method == local */
char *password; /* the username or NULL if method == local */
char *hostname; /* the hostname or NULL if method == local */
int port; /* the port or zero if method == local */
char *directory; /* the directory name */
#ifdef CLIENT_SUPPORT
unsigned char isremote; /* nonzero if we are doing remote access */
#endif /* CLIENT_SUPPORT */
} cvsroot_t;
+47 -9
View File
@@ -984,9 +984,6 @@ dirswitch (dir, repos)
return;
}
if (dir_name != NULL)
free (dir_name);
dir_len = strlen (dir);
/* Check for a trailing '/'. This is not ISDIRSEP because \ in the
@@ -1002,6 +999,9 @@ dirswitch (dir, repos)
return;
}
if (dir_name != NULL)
free (dir_name);
dir_name = malloc (strlen (server_temp_dir) + dir_len + 40);
if (dir_name == NULL)
{
@@ -1654,8 +1654,18 @@ serve_unchanged (arg)
&& strncmp (arg, name, cp - name) == 0)
{
timefield = strchr (cp + 1, '/') + 1;
if (*timefield != '=')
/* If the time field is not currently empty, then one of
* serve_modified, serve_is_modified, & serve_unchanged were
* already called for this file. We would like to ignore the
* reinvocation silently or, better yet, exit with an error
* message, but we just avoid the copy-forward and overwrite the
* value from the last invocation instead. See the comment below
* for more.
*/
if (*timefield == '/')
{
/* Copy forward one character. Space was allocated for this
* already in serve_entry(). */
cp = timefield + strlen (timefield);
cp[1] = '\0';
while (cp > timefield)
@@ -1663,8 +1673,17 @@ serve_unchanged (arg)
*cp = cp[-1];
--cp;
}
*timefield = '=';
}
/* If *TIMEFIELD wasn't "/", we assume that it was because of
* multiple calls to Is-Modified & Unchanged by the client and
* just overwrite the value from the last call. Technically, we
* should probably either ignore calls after the first or send the
* client an error, since the client/server protocol specification
* specifies that only one call to either Is-Modified or Unchanged
* is allowed, but broken versions of WinCVS & TortoiseCVS rely on
* this behavior.
*/
*timefield = '=';
break;
}
}
@@ -1698,8 +1717,18 @@ serve_is_modified (arg)
&& strncmp (arg, name, cp - name) == 0)
{
timefield = strchr (cp + 1, '/') + 1;
if (!(timefield[0] == 'M' && timefield[1] == '/'))
/* If the time field is not currently empty, then one of
* serve_modified, serve_is_modified, & serve_unchanged were
* already called for this file. We would like to ignore the
* reinvocation silently or, better yet, exit with an error
* message, but we just avoid the copy-forward and overwrite the
* value from the last invocation instead. See the comment below
* for more.
*/
if (*timefield == '/')
{
/* Copy forward one character. Space was allocated for this
* already in serve_entry(). */
cp = timefield + strlen (timefield);
cp[1] = '\0';
while (cp > timefield)
@@ -1707,8 +1736,17 @@ serve_is_modified (arg)
*cp = cp[-1];
--cp;
}
*timefield = 'M';
}
/* If *TIMEFIELD wasn't "/", we assume that it was because of
* multiple calls to Is-Modified & Unchanged by the client and
* just overwrite the value from the last call. Technically, we
* should probably either ignore calls after the first or send the
* client an error, since the client/server protocol specification
* specifies that only one call to either Is-Modified or Unchanged
* is allowed, but broken versions of WinCVS & TortoiseCVS rely on
* this behavior.
*/
*timefield = 'M';
if (kopt != NULL)
{
if (alloc_pending (strlen (name) + 80))
@@ -4738,8 +4776,8 @@ struct request requests[] =
REQ_LINE("Max-dotdot", serve_max_dotdot, 0),
REQ_LINE("Static-directory", serve_static_directory, 0),
REQ_LINE("Sticky", serve_sticky, 0),
REQ_LINE("Checkin-prog", serve_checkin_prog, 0),
REQ_LINE("Update-prog", serve_update_prog, 0),
REQ_LINE("Checkin-prog", serve_noop, 0),
REQ_LINE("Update-prog", serve_noop, 0),
REQ_LINE("Entry", serve_entry, RQ_ESSENTIAL),
REQ_LINE("Kopt", serve_kopt, 0),
REQ_LINE("Checkin-time", serve_checkin_time, 0),
-15
View File
@@ -1,15 +0,0 @@
/* -*- c -*-
*
* Copyright (c) 1992, Brian Berliner and Jeff Polk
* Copyright (c) 1989-1992, Brian Berliner
*
* You may distribute under the terms of the GNU General Public License as
* specified in the README file that comes with the CVS kit.
*/
#ifndef VERSION_H
#define VERSION_H 1
#define version_string "Concurrent Versions System (CVS) @VERSION@"
#endif /* VERSION_H */
-32
View File
@@ -1,32 +0,0 @@
#------------------------------------------------------------------------------
# acorn: file(1) magic for files found on Acorn systems
#
# RISC OS Chunk File Format
# From RISC OS Programmer's Reference Manual, Appendix D
# We guess the file type from the type of the first chunk.
0 lelong 0xc3cbc6c5 RISC OS Chunk data
>12 string OBJ_ \b, AOF object
>12 string LIB_ \b, ALF library
# RISC OS AIF, contains "SWI OS_Exit" at offset 16.
16 lelong 0xef000011 RISC OS AIF executable
# RISC OS Draw files
# From RISC OS Programmer's Reference Manual, Appendix E
0 string Draw RISC OS Draw file data
# RISC OS new format font files
# From RISC OS Programmer's Reference Manual, Appendix E
0 string FONT\0 RISC OS outline font data,
>5 byte x version %d
0 string FONT\1 RISC OS 1bpp font data,
>5 byte x version %d
0 string FONT\4 RISC OS 4bpp font data
>5 byte x version %d
# RISC OS Music files
# From RISC OS Programmer's Reference Manual, Appendix E
0 string Maestro\r RISC OS music file
>8 byte x version %d
-11
View File
@@ -1,11 +0,0 @@
#------------------------------------------------------------------------------
# CDDB: file(1) magic for CDDB(tm) format CD text data files
#
# From <[email protected]>
#
# This is the /etc/magic entry to decode datafiles as used by
# CDDB-enabled CD player applications.
#
0 string/b #\040xmcd CDDB(tm) format CD text data
-6
View File
@@ -1,6 +0,0 @@
#------------------------------------------------------------------------------
# citrus locale declaration
#
0 string RuneCT Citrus locale declaration for LC_CTYPE
-6
View File
@@ -1,6 +0,0 @@
#------------------------------------------------------------------------------
# file(1) magic for cvs(1) files
# From Hendrik Scholz <[email protected]>
0 string /1\ :pserver: cvs password text file
-57
View File
@@ -1,57 +0,0 @@
# ATSC A/53 aka AC-3 aka Dolby Digital <[email protected]>
# from http://www.atsc.org/standards/a_52a.pdf
# corrections, additions, etc. are always welcome!
#
# syncword
0 beshort 0x0b77 ATSC A/52 aka AC-3 aka Dolby Digital stream,
# fscod
>4 byte&0xc0 0x00 48 kHz,
>4 byte&0xc0 0x40 44.1 kHz,
>4 byte&0xc0 0x80 32 kHz,
# is this one used for 96 kHz?
>4 byte&0xc0 0xc0 reserved frequency,
#
>5 byte&7 = 0 \b, complete main (CM)
>5 byte&7 = 1 \b, music and effects (ME)
>5 byte&7 = 2 \b, visually impaired (VI)
>5 byte&7 = 3 \b, hearing impaired (HI)
>5 byte&7 = 4 \b, dialogue (D)
>5 byte&7 = 5 \b, commentary (C)
>5 byte&7 = 6 \b, emergency (E)
# acmod
>6 byte&0xe0 0x00 1+1 front,
>6 byte&0xe0 0x20 1 front/0 rear,
>6 byte&0xe0 0x40 2 front/0 rear,
>6 byte&0xe0 0x60 3 front/0 rear,
>6 byte&0xe0 0x80 2 front/1 rear,
>6 byte&0xe0 0xa0 3 front/1 rear,
>6 byte&0xe0 0xc0 2 front/2 rear,
>6 byte&0xe0 0xe0 3 front/2 rear,
# lfeon (these may be incorrect)
>7 byte&0x40 0x00 LFE off,
>7 byte&0x40 0x40 LFE on,
#
>4 byte&0x3e = 0x00 \b, 32 kbit/s
>4 byte&0x3e = 0x02 \b, 40 kbit/s
>4 byte&0x3e = 0x04 \b, 48 kbit/s
>4 byte&0x3e = 0x06 \b, 56 kbit/s
>4 byte&0x3e = 0x08 \b, 64 kbit/s
>4 byte&0x3e = 0x0a \b, 80 kbit/s
>4 byte&0x3e = 0x0c \b, 96 kbit/s
>4 byte&0x3e = 0x0e \b, 112 kbit/s
>4 byte&0x3e = 0x10 \b, 128 kbit/s
>4 byte&0x3e = 0x12 \b, 160 kbit/s
>4 byte&0x3e = 0x14 \b, 192 kbit/s
>4 byte&0x3e = 0x16 \b, 224 kbit/s
>4 byte&0x3e = 0x18 \b, 256 kbit/s
>4 byte&0x3e = 0x1a \b, 320 kbit/s
>4 byte&0x3e = 0x1c \b, 384 kbit/s
>4 byte&0x3e = 0x1e \b, 448 kbit/s
>4 byte&0x3e = 0x20 \b, 512 kbit/s
>4 byte&0x3e = 0x22 \b, 576 kbit/s
>4 byte&0x3e = 0x24 \b, 640 kbit/s
# dsurmod (these may be incorrect)
>6 beshort&0x0180 0x0000 Dolby Surround not indicated
>6 beshort&0x0180 0x0080 not Dolby Surround encoded
>6 beshort&0x0180 0x0100 Dolby Surround encoded
>6 beshort&0x0180 0x0180 reserved Dolby Surround mode
-25
View File
@@ -1,25 +0,0 @@
#------------------------------------------------------------------------------
# human68k: file(1) magic for Human68k (X680x0 DOS) binary formats
0 string HU Human68k
>68 string LZX LZX compressed
>>72 string >\0 (version %s)
>(8.L+74) string LZX LZX compressed
>>(8.L+78) string >\0 (version %s)
>60 belong >0 binded
>(8.L+66) string #HUPAIR hupair
>0 string HU X executable
>(8.L+74) string #LIBCV1 - linked PD LIBC ver 1
>4 belong >0 - base address 0x%x
>28 belong >0 not stripped
>32 belong >0 with debug information
0 beshort 0x601a Human68k Z executable
0 beshort 0x6000 Human68k object file
0 belong 0xd1000000 Human68k ar binary archive
0 belong 0xd1010000 Human68k ar ascii archive
0 beshort 0x0068 Human68k lib archive
4 string LZX Human68k LZX compressed
>8 string >\0 (version %s)
>4 string LZX R executable
2 string #HUPAIR Human68k hupair R executable
-18
View File
@@ -1,18 +0,0 @@
#------------------------------------------------------------------------------
# impulse tracker: file(1) magic for Impulse Tracker data files
#
# From <[email protected]>
# These are the /etc/magic entries to decode modules, instruments, and
# samples in Impulse Tracker's native format.
0 string IMPS Impulse Tracker Sample
>18 byte &2 16 bit
>18 byte ^2 8 bit
>18 byte &4 stereo
>18 byte ^4 mono
0 string IMPI Impulse Tracker Instrument
>28 leshort !0 ITv%x
>30 byte !0 %d samples
0 string IMPM Impulse Tracker Module
>40 leshort !0 compatible w/ITv%x
>42 leshort !0 created w/ITv%x
-7
View File
@@ -1,7 +0,0 @@
#------------------------------------------------------------------------------
# mlssa: file(1) magic for MLSSA datafiles
#
0 lelong 0xffffabcd MLSSA datafile,
>4 leshort x algorithm %d,
>10 lelong x %d samples
-23
View File
@@ -1,23 +0,0 @@
#-----------------------------------------------------------------------------
# natinst: file(1) magic for National Instruments Code Files
#
# From <[email protected]> Enrique Gámez-Flores
# version 1
# Many formats still missing, we use, for the moment LabVIEW
# We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
#
0 string RSRC National Instruments,
# Check if it's a LabVIEW File
>8 string LV LabVIEW File,
# Check wich kind of file is
>>10 string SB Code Resource File, data
>>10 string IN Virtual Instrument Program, data
>>10 string AR VI Library, data
# This is for Menu Libraries
>8 string LMNULBVW Portable File Names, data
# This is for General Resources
>8 string rsc Resources File, data
# This is for VXI Package
0 string VMAP National Instruments, VXI File, data
-12
View File
@@ -1,12 +0,0 @@
#------------------------------------------------------------------------------
# nitpicker: file(1) magic for Flowfiles.
# From: Christian Jachmann <[email protected]> http://www.nitpicker.de
0 string NPFF NItpicker Flow File
>4 byte x V%d.
>5 byte x %d
>6 bedate x started: %s
>10 bedate x stopped: %s
>14 belong x Bytes: %u
>18 belong x Bytes1: %u
>22 belong x Flows: %u
>26 belong x Pkts: %u
-18
View File
@@ -1,18 +0,0 @@
#------------------------------------------------------------------------------
# perl: file(1) magic for Larry Wall's perl language.
#
# The ``eval'' line recognizes an outrageously clever hack for USG systems.
# Keith Waclena <[email protected]>
# Send additions to <[email protected]>
0 string/b #!\ /bin/perl perl script text executable
0 string eval\ "exec\ /bin/perl perl script text
0 string/b #!\ /usr/bin/perl perl script text executable
0 string eval\ "exec\ /usr/bin/perl perl script text
0 string/b #!\ /usr/local/bin/perl perl script text
0 string eval\ "exec\ /usr/local/bin/perl perl script text executable
# a couple more, by me
# XXX: christos matches
#0 regex package Perl5 module source text (via regex)
0 string package Perl5 module source text
-12
View File
@@ -1,12 +0,0 @@
#------------------------------------------------------------------------------
# pulsar: file(1) magic for Pulsar POP3 daemon binary files
#
# http://pulsar.sourceforge.net
# mailto:[email protected]
#
0 belong 0x1ee7f11e Pulsar POP3 daemon mailbox cache file.
>4 ubelong x Version: %d.
>8 ubelong x \b%d
-6
View File
@@ -1,6 +0,0 @@
#------------------------------------------------------------------------------
# file(1) magic for tgif(1) files
# From Hendrik Scholz <[email protected]>
0 string %TGIF\ 4 tgif version 4 object file
-13
View File
@@ -1,13 +0,0 @@
#------------------------------------------------------------------------------
# VXL: file(1) magic for VXL binary IO data files
#
# from Ian Scott <[email protected]>
#
# VXL is a collection of C++ libraries for Computer Vision.
# See the vsl chapter in the VXL Book for more info
# http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
# http:/vxl.sf.net
2 lelong 0x472b2c4e VXL data file,
>0 leshort >0 schema version no %d
+35
View File
@@ -59,6 +59,8 @@ SM_IDSTR(id, "@(#)$Id: smrsh.c,v 8.58 2002/05/25 02:41:31 ca Exp $")
#include <sm/limits.h>
#include <sm/string.h>
#include <sys/file.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
@@ -147,6 +149,7 @@ main(argc, argv)
char *newenv[2];
char pathbuf[1000];
char specialbuf[32];
struct stat st;
#ifndef DEBUG
# ifndef LOG_MAIL
@@ -304,6 +307,38 @@ main(argc, argv)
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
"Trying %s\n", cmdbuf);
#endif /* DEBUG */
if (stat(cmdbuf, &st) < 0)
{
/* can't stat it */
(void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT,
"%s: %s not available for sendmail programs (stat failed)\n",
prg, cmd);
if (p != NULL)
*p = ' ';
#ifndef DEBUG
syslog(LOG_CRIT, "uid %d: attempt to use %s (stat failed)",
(int) getuid(), cmd);
#endif /* ! DEBUG */
exit(EX_UNAVAILABLE);
}
if (!S_ISREG(st.st_mode)
#ifdef S_ISLNK
&& !S_ISLNK(st.st_mode)
#endif /* S_ISLNK */
)
{
/* can't stat it */
(void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT,
"%s: %s not available for sendmail programs (not a file)\n",
prg, cmd);
if (p != NULL)
*p = ' ';
#ifndef DEBUG
syslog(LOG_CRIT, "uid %d: attempt to use %s (not a file)",
(int) getuid(), cmd);
#endif /* ! DEBUG */
exit(EX_UNAVAILABLE);
}
if (access(cmdbuf, X_OK) < 0)
{
/* oops.... crack attack possiblity */
+2
View File
@@ -332,6 +332,8 @@ setdefaults(e)
DontProbeInterfaces = DPI_PROBEALL;
DoubleBounceAddr = "postmaster";
MaxHeadersLength = MAXHDRSLEN;
MaxMimeHeaderLength = MAXLINE;
MaxMimeFieldLength = MaxMimeHeaderLength / 2;
MaxForwardEntries = 0;
FastSplit = 1;
#if SASL
+1 -1
View File
@@ -3508,7 +3508,7 @@ getauthinfo(fd, may_be_forged)
if (i < 0 || p == &ibuf[0])
goto noident;
if (*--p == '\n' && *--p == '\r')
if (p >= &ibuf[2] && *--p == '\n' && *--p == '\r')
p--;
*++p = '\0';
+129 -84
View File
@@ -678,8 +678,8 @@ eatheader(e, full, log)
if (buf[0] != '\0')
{
if (bitset(H_FROM, h->h_flags))
expand(crackaddr(buf), buf, sizeof buf,
e);
expand(crackaddr(buf, e),
buf, sizeof buf, e);
h->h_value = sm_rpool_strdup_x(e->e_rpool, buf);
h->h_flags &= ~H_DEFAULT;
}
@@ -1000,7 +1000,11 @@ priencode(p)
** it and replaces it with "$g". The parse is totally ad hoc
** and isn't even guaranteed to leave something syntactically
** identical to what it started with. However, it does leave
** something semantically identical.
** something semantically identical if possible, else at least
** syntactically correct.
**
** For example, it changes "Real Name <[email protected]> (Comment)"
** to "Real Name <$g> (Comment)".
**
** This algorithm has been cleaned up to handle a wider range
** of cases -- notably quoted and backslash escaped strings.
@@ -1009,6 +1013,7 @@ priencode(p)
**
** Parameters:
** addr -- the address to be cracked.
** e -- the current envelope.
**
** Returns:
** a pointer to the new version.
@@ -1021,28 +1026,50 @@ priencode(p)
** be copied if it is to be reused.
*/
#define SM_HAVE_ROOM ((bp < buflim) && (buflim <= bufend))
/*
** Append a character to bp if we have room.
** If not, punt and return $g.
*/
#define SM_APPEND_CHAR(c) \
do \
{ \
if (SM_HAVE_ROOM) \
*bp++ = (c); \
else \
goto returng; \
} while (0)
#if MAXNAME < 10
ERROR MAXNAME must be at least 10
#endif /* MAXNAME < 10 */
char *
crackaddr(addr)
crackaddr(addr, e)
register char *addr;
ENVELOPE *e;
{
register char *p;
register char c;
int cmtlev;
int realcmtlev;
int anglelev, realanglelev;
int copylev;
int bracklev;
bool qmode;
bool realqmode;
bool skipping;
bool putgmac = false;
bool quoteit = false;
bool gotangle = false;
bool gotcolon = false;
int cmtlev; /* comment level in input string */
int realcmtlev; /* comment level in output string */
int anglelev; /* angle level in input string */
int copylev; /* 0 == in address, >0 copying */
int bracklev; /* bracket level for IPv6 addr check */
bool addangle; /* put closing angle in output */
bool qmode; /* quoting in original string? */
bool realqmode; /* quoting in output string? */
bool putgmac = false; /* already wrote $g */
bool quoteit = false; /* need to quote next character */
bool gotangle = false; /* found first '<' */
bool gotcolon = false; /* found a ':' */
register char *bp;
char *buflim;
char *bufhead;
char *addrhead;
char *bufend;
static char buf[MAXNAME + 1];
if (tTd(33, 1))
@@ -1057,25 +1084,22 @@ crackaddr(addr)
** adjusted later if we find them.
*/
buflim = bufend = &buf[sizeof(buf) - 1];
bp = bufhead = buf;
buflim = &buf[sizeof buf - 7];
p = addrhead = addr;
copylev = anglelev = realanglelev = cmtlev = realcmtlev = 0;
copylev = anglelev = cmtlev = realcmtlev = 0;
bracklev = 0;
qmode = realqmode = false;
qmode = realqmode = addangle = false;
while ((c = *p++) != '\0')
{
/*
** If the buffer is overful, go into a special "skipping"
** mode that tries to keep legal syntax but doesn't actually
** output things.
** Try to keep legal syntax using spare buffer space
** (maintained by buflim).
*/
skipping = bp >= buflim;
if (copylev > 0 && !skipping)
*bp++ = c;
if (copylev > 0)
SM_APPEND_CHAR(c);
/* check for backslash escapes */
if (c == '\\')
@@ -1090,8 +1114,8 @@ crackaddr(addr)
p--;
goto putg;
}
if (copylev > 0 && !skipping)
*bp++ = c;
if (copylev > 0)
SM_APPEND_CHAR(c);
goto putg;
}
@@ -1099,8 +1123,14 @@ crackaddr(addr)
if (c == '"' && cmtlev <= 0)
{
qmode = !qmode;
if (copylev > 0 && !skipping)
if (copylev > 0 && SM_HAVE_ROOM)
{
if (realqmode)
buflim--;
else
buflim++;
realqmode = !realqmode;
}
continue;
}
if (qmode)
@@ -1112,15 +1142,15 @@ crackaddr(addr)
cmtlev++;
/* allow space for closing paren */
if (!skipping)
if (SM_HAVE_ROOM)
{
buflim--;
realcmtlev++;
if (copylev++ <= 0)
{
if (bp != bufhead)
*bp++ = ' ';
*bp++ = c;
SM_APPEND_CHAR(' ');
SM_APPEND_CHAR(c);
}
}
}
@@ -1130,7 +1160,7 @@ crackaddr(addr)
{
cmtlev--;
copylev--;
if (!skipping)
if (SM_HAVE_ROOM)
{
realcmtlev--;
buflim++;
@@ -1141,7 +1171,7 @@ crackaddr(addr)
else if (c == ')')
{
/* syntax error: unmatched ) */
if (copylev > 0 && !skipping)
if (copylev > 0 && SM_HAVE_ROOM)
bp--;
}
@@ -1159,7 +1189,7 @@ crackaddr(addr)
/*
** Check for DECnet phase IV ``::'' (host::user)
** or ** DECnet phase V ``:.'' syntaxes. The latter
** or DECnet phase V ``:.'' syntaxes. The latter
** covers ``user@DEC:.tay.myhost'' and
** ``DEC:.tay.myhost::user'' syntaxes (bletch).
*/
@@ -1168,10 +1198,10 @@ crackaddr(addr)
{
if (cmtlev <= 0 && !qmode)
quoteit = true;
if (copylev > 0 && !skipping)
if (copylev > 0)
{
*bp++ = c;
*bp++ = *p;
SM_APPEND_CHAR(c);
SM_APPEND_CHAR(*p);
}
p++;
goto putg;
@@ -1182,41 +1212,43 @@ crackaddr(addr)
bp = bufhead;
if (quoteit)
{
*bp++ = '"';
SM_APPEND_CHAR('"');
/* back up over the ':' and any spaces */
--p;
while (isascii(*--p) && isspace(*p))
while (p > addr &&
isascii(*--p) && isspace(*p))
continue;
p++;
}
for (q = addrhead; q < p; )
{
c = *q++;
if (bp < buflim)
if (quoteit && c == '"')
{
if (quoteit && c == '"')
*bp++ = '\\';
*bp++ = c;
SM_APPEND_CHAR('\\');
SM_APPEND_CHAR(c);
}
else
SM_APPEND_CHAR(c);
}
if (quoteit)
{
if (bp == &bufhead[1])
bp--;
else
*bp++ = '"';
SM_APPEND_CHAR('"');
while ((c = *p++) != ':')
{
if (bp < buflim)
*bp++ = c;
}
*bp++ = c;
SM_APPEND_CHAR(c);
SM_APPEND_CHAR(c);
}
/* any trailing white space is part of group: */
while (isascii(*p) && isspace(*p) && bp < buflim)
*bp++ = *p++;
while (isascii(*p) && isspace(*p))
{
SM_APPEND_CHAR(*p);
p++;
}
copylev = 0;
putgmac = quoteit = false;
bufhead = bp;
@@ -1225,10 +1257,7 @@ crackaddr(addr)
}
if (c == ';' && copylev <= 0 && !ColonOkInAddr)
{
if (bp < buflim)
*bp++ = c;
}
SM_APPEND_CHAR(c);
/* check for characters that may have to be quoted */
if (strchr(MustQuoteChars, c) != NULL)
@@ -1256,42 +1285,45 @@ crackaddr(addr)
/* oops -- have to change our mind */
anglelev = 1;
if (!skipping)
realanglelev = 1;
if (SM_HAVE_ROOM)
{
if (!addangle)
buflim--;
addangle = true;
}
bp = bufhead;
if (quoteit)
{
*bp++ = '"';
SM_APPEND_CHAR('"');
/* back up over the '<' and any spaces */
--p;
while (isascii(*--p) && isspace(*p))
while (p > addr &&
isascii(*--p) && isspace(*p))
continue;
p++;
}
for (q = addrhead; q < p; )
{
c = *q++;
if (bp < buflim)
if (quoteit && c == '"')
{
if (quoteit && c == '"')
*bp++ = '\\';
*bp++ = c;
SM_APPEND_CHAR('\\');
SM_APPEND_CHAR(c);
}
else
SM_APPEND_CHAR(c);
}
if (quoteit)
{
if (bp == &buf[1])
bp--;
else
*bp++ = '"';
SM_APPEND_CHAR('"');
while ((c = *p++) != '<')
{
if (bp < buflim)
*bp++ = c;
}
*bp++ = c;
SM_APPEND_CHAR(c);
SM_APPEND_CHAR(c);
}
copylev = 0;
putgmac = quoteit = false;
@@ -1303,13 +1335,14 @@ crackaddr(addr)
if (anglelev > 0)
{
anglelev--;
if (!skipping)
if (SM_HAVE_ROOM)
{
realanglelev--;
buflim++;
if (addangle)
buflim++;
addangle = false;
}
}
else if (!skipping)
else if (SM_HAVE_ROOM)
{
/* syntax error: unmatched > */
if (copylev > 0)
@@ -1318,7 +1351,7 @@ crackaddr(addr)
continue;
}
if (copylev++ <= 0)
*bp++ = c;
SM_APPEND_CHAR(c);
continue;
}
@@ -1326,30 +1359,42 @@ crackaddr(addr)
putg:
if (copylev <= 0 && !putgmac)
{
if (bp > bufhead && bp[-1] == ')')
*bp++ = ' ';
*bp++ = MACROEXPAND;
*bp++ = 'g';
if (bp > buf && bp[-1] == ')')
SM_APPEND_CHAR(' ');
SM_APPEND_CHAR(MACROEXPAND);
SM_APPEND_CHAR('g');
putgmac = true;
}
}
/* repair any syntactic damage */
if (realqmode)
if (realqmode && bp < bufend)
*bp++ = '"';
while (realcmtlev-- > 0)
while (realcmtlev-- > 0 && bp < bufend)
*bp++ = ')';
while (realanglelev-- > 0)
if (addangle && bp < bufend)
*bp++ = '>';
*bp++ = '\0';
*bp = '\0';
if (bp < bufend)
goto success;
returng:
/* String too long, punt */
buf[0] = '<';
buf[1] = MACROEXPAND;
buf[2]= 'g';
buf[3] = '>';
buf[4]= '\0';
sm_syslog(LOG_ALERT, e->e_id,
"Dropped invalid comments from header address");
success:
if (tTd(33, 1))
{
sm_dprintf("crackaddr=>`");
xputs(buf);
sm_dprintf("'\n");
}
return buf;
}
/*
+1 -1
View File
@@ -4227,7 +4227,7 @@ testmodeline(line, e)
"Usage: /parse address\n");
return;
}
q = crackaddr(p);
q = crackaddr(p, e);
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
"Cracked address = ");
xputs(q);
+18 -3
View File
@@ -608,7 +608,7 @@ unsigned char TokTypeNoC[256] =
};
#define NOCHAR -1 /* signal nothing in lookahead token */
#define NOCHAR (-1) /* signal nothing in lookahead token */
char **
prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
@@ -694,22 +694,31 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
/* see if there is room */
if (q >= &pvpbuf[pvpbsize - 5])
{
addrtoolong:
usrerr("553 5.1.1 Address too long");
if (strlen(addr) > MAXNAME)
addr[MAXNAME] = '\0';
returnnull:
if (delimptr != NULL)
{
if (p > addr)
p--;
*delimptr = p;
}
CurEnv->e_to = saveto;
return NULL;
}
/* squirrel it away */
#if !ALLOW_255
if ((char) c == (char) -1 && !tTd(82, 101))
c &= 0x7f;
#endif /* !ALLOW_255 */
*q++ = c;
}
/* read a new input character */
c = *p++;
c = (*p++) & 0x00ff;
if (c == '\0')
{
/* diagnose and patch up bad syntax */
@@ -764,6 +773,9 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
}
else if (c != '!' || state == QST)
{
/* see if there is room */
if (q >= &pvpbuf[pvpbsize - 5])
goto addrtoolong;
*q++ = '\\';
continue;
}
@@ -849,6 +861,9 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
/* new token */
if (tok != q)
{
/* see if there is room */
if (q >= &pvpbuf[pvpbsize - 5])
goto addrtoolong;
*q++ = '\0';
if (tTd(22, 36))
{
@@ -2508,7 +2523,7 @@ remotename(name, m, flags, pstat, e)
if (bitset(RF_CANONICAL, flags) || bitnset(M_NOCOMMENT, m->m_flags))
fancy = "\201g";
else
fancy = crackaddr(name);
fancy = crackaddr(name, e);
/*
** Turn the name into canonical form.
+1 -1
View File
@@ -325,7 +325,7 @@ extern ADDRESS NullAddress; /* a null (template) address [main.c] */
/* functions */
extern void cataddr __P((char **, char **, char *, int, int));
extern char *crackaddr __P((char *));
extern char *crackaddr __P((char *, ENVELOPE *));
extern bool emptyaddr __P((ADDRESS *));
extern ADDRESS *getctladdr __P((ADDRESS *));
extern int include __P((char *, bool, ADDRESS *, ADDRESS **, int, ENVELOPE *));
+1
View File
@@ -233,6 +233,7 @@ parse_dns_reply(data, len)
dns_free_data(r);
return NULL;
}
memset(*rr, 0, sizeof(**rr));
(*rr)->rr_domain = sm_strdup(host);
if ((*rr)->rr_domain == NULL)
{
+1 -1
View File
@@ -15,4 +15,4 @@
SM_RCSID("@(#)$Id: version.c,v 8.104.2.5 2002/08/24 16:27:21 ca Exp $")
char Version[] = "8.12.6";
char Version[] = "8.12.6p3";
+10 -1
View File
@@ -1026,10 +1026,19 @@ extract_archive (void)
{
struct stat st1, st2;
int e;
size_t skiplinkcrud;
if (absolute_names_option)
skiplinkcrud = 0;
else {
skiplinkcrud = FILESYSTEM_PREFIX_LEN (current_link_name);
while (ISSLASH (current_link_name[skiplinkcrud]))
skiplinkcrud++;
}
/* MSDOS does not implement links. However, djgpp's link() actually
copies the file. */
status = link (current_link_name, CURRENT_FILE_NAME);
status = link (current_link_name + skiplinkcrud, CURRENT_FILE_NAME);
if (status == 0)
{
+7
View File
@@ -216,6 +216,13 @@ contains_dot_dot (char const *name)
return 0;
}
while (! ISSLASH (*p));
do
{
if (! *p++)
return 0;
}
while ( ISSLASH (*p));
}
}
+8 -1
View File
@@ -41,7 +41,7 @@
#include <krb_err.h>
#include <kadm_err.h>
RCSID("$Id: version4.c,v 1.26 2002/09/10 15:20:46 joda Exp $");
RCSID("$Id: version4.c,v 1.27 2002/10/21 12:35:07 joda Exp $");
#define KADM_NO_OPCODE -1
#define KADM_NO_ENCRYPT -2
@@ -822,6 +822,13 @@ decode_packet(krb5_context context,
off += _krb5_get_int(msg + off, &rlen, 4);
memset(&authent, 0, sizeof(authent));
authent.length = message.length - rlen - KADM_VERSIZE - 4;
if(authent.length >= MAX_KTXT_LEN) {
krb5_warnx(context, "received bad rlen (%lu)", (unsigned long)rlen);
make_you_loose_packet (KADM_LENGTH_ERROR, reply);
return;
}
memcpy(authent.dat, (char*)msg + off, authent.length);
off += authent.length;
+11 -2
View File
@@ -117,16 +117,25 @@ kadm_ser_in(u_char **dat, int *dat_len, u_char *errdat)
u_char *retdat, *tmpdat;
int retval, retlen;
if (strncmp(KADM_VERSTR, (char *)*dat, KADM_VERSIZE)) {
if (*dat_len < (KADM_VERSIZE + sizeof(u_int32_t))
|| strncmp(KADM_VERSTR, (char *)*dat, KADM_VERSIZE) != 0) {
errpkt(errdat, dat, dat_len, KADM_BAD_VER);
return KADM_BAD_VER;
}
in_len = KADM_VERSIZE;
/* get the length */
if ((retc = stv_long(*dat, &r_len, in_len, *dat_len)) < 0)
if ((retc = stv_long(*dat, &r_len, in_len, *dat_len)) < 0 ||
(r_len > *dat_len - KADM_VERSIZE - sizeof(u_int32_t))) {
errpkt(errdat, dat, dat_len, KADM_LENGTH_ERROR);
return KADM_LENGTH_ERROR;
}
in_len += retc;
authent.length = *dat_len - r_len - KADM_VERSIZE - sizeof(u_int32_t);
if (authent.length > MAX_KTXT_LEN) {
errpkt(errdat, dat, dat_len, KADM_LENGTH_ERROR);
return KADM_LENGTH_ERROR;
}
memcpy(authent.dat, (char *)(*dat) + in_len, authent.length);
authent.mbz = 0;
/* service key should be set before here */
+8
View File
@@ -80,3 +80,11 @@ verify_response(Authctxt *authctxt, const char *response)
authctxt->kbdintctxt = NULL;
return res ? 0 : 1;
}
void
abandon_challenge_response(Authctxt *authctxt)
{
if (authctxt->kbdintctxt != NULL) {
device->free_ctx(authctxt->kbdintctxt);
authctxt->kbdintctxt = NULL;
}
}
+1
View File
@@ -160,6 +160,7 @@ struct passwd * getpwnamallow(const char *user);
char *get_challenge(Authctxt *);
int verify_response(Authctxt *, const char *);
void abandon_challenge_response(Authctxt *);
struct passwd * auth_get_user(void);
+13 -1
View File
@@ -73,7 +73,7 @@ do_authloop(Authctxt *authctxt)
char info[1024];
u_int dlen;
u_int ulen;
int type = 0;
int prev, type = 0;
struct passwd *pw = authctxt->pw;
debug("Attempting authentication for %s%.100s.",
@@ -103,8 +103,20 @@ do_authloop(Authctxt *authctxt)
info[0] = '\0';
/* Get a packet from the client. */
prev = type;
type = packet_read();
/*
* If we started challenge-response authentication but the
* next packet is not a response to our challenge, release
* the resources allocated by get_challenge() (which would
* normally have been released by verify_response() had we
* received such a response)
*/
if (prev == SSH_CMSG_AUTH_TIS &&
type != SSH_CMSG_AUTH_TIS_RESPONSE)
abandon_challenge_response(authctxt);
/* Process the packet. */
switch (type) {
+4 -6
View File
@@ -76,8 +76,8 @@ pam_child_conv(int n,
*resp = xmalloc(n * sizeof **resp);
buffer_init(&buffer);
for (i = 0; i < n; ++i) {
resp[i]->resp_retcode = 0;
resp[i]->resp = NULL;
(*resp)[i].resp_retcode = 0;
(*resp)[i].resp = NULL;
switch (msg[i]->msg_style) {
case PAM_PROMPT_ECHO_OFF:
buffer_put_cstring(&buffer, msg[i]->msg);
@@ -85,7 +85,7 @@ pam_child_conv(int n,
msg_recv(ctxt->pam_sock, &buffer);
if (buffer_get_char(&buffer) != PAM_AUTHTOK)
goto fail;
resp[i]->resp = buffer_get_string(&buffer, NULL);
(*resp)[i].resp = buffer_get_string(&buffer, NULL);
break;
case PAM_PROMPT_ECHO_ON:
buffer_put_cstring(&buffer, msg[i]->msg);
@@ -93,7 +93,7 @@ pam_child_conv(int n,
msg_recv(ctxt->pam_sock, &buffer);
if (buffer_get_char(&buffer) != PAM_AUTHTOK)
goto fail;
resp[i]->resp = buffer_get_string(&buffer, NULL);
(*resp)[i].resp = buffer_get_string(&buffer, NULL);
break;
case PAM_ERROR_MSG:
buffer_put_cstring(&buffer, msg[i]->msg);
@@ -111,8 +111,6 @@ pam_child_conv(int n,
buffer_free(&buffer);
return (PAM_SUCCESS);
fail:
while (i)
xfree(resp[--i]);
xfree(*resp);
*resp = NULL;
buffer_free(&buffer);
+16 -8
View File
@@ -23,8 +23,11 @@ RCSID("$OpenBSD: buffer.c,v 1.16 2002/06/26 08:54:18 markus Exp $");
void
buffer_init(Buffer *buffer)
{
buffer->alloc = 4096;
buffer->buf = xmalloc(buffer->alloc);
const u_int len = 4096;
buffer->alloc = 0;
buffer->buf = xmalloc(len);
buffer->alloc = len;
buffer->offset = 0;
buffer->end = 0;
}
@@ -34,8 +37,10 @@ buffer_init(Buffer *buffer)
void
buffer_free(Buffer *buffer)
{
memset(buffer->buf, 0, buffer->alloc);
xfree(buffer->buf);
if (buffer->alloc > 0) {
memset(buffer->buf, 0, buffer->alloc);
xfree(buffer->buf);
}
}
/*
@@ -69,6 +74,7 @@ buffer_append(Buffer *buffer, const void *data, u_int len)
void *
buffer_append_space(Buffer *buffer, u_int len)
{
u_int newlen;
void *p;
if (len > 0x100000)
@@ -98,11 +104,13 @@ restart:
goto restart;
}
/* Increase the size of the buffer and retry. */
buffer->alloc += len + 32768;
if (buffer->alloc > 0xa00000)
newlen = buffer->alloc + len + 32768;
if (newlen > 0xa00000)
fatal("buffer_append_space: alloc %u not supported",
buffer->alloc);
buffer->buf = xrealloc(buffer->buf, buffer->alloc);
newlen);
buffer->buf = xrealloc(buffer->buf, newlen);
buffer->alloc = newlen;
goto restart;
/* NOTREACHED */
}
+3 -2
View File
@@ -229,12 +229,13 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd,
if (found == -1) {
/* There are no free slots. Take last+1 slot and expand the array. */
found = channels_alloc;
channels_alloc += 10;
if (channels_alloc > 10000)
fatal("channel_new: internal error: channels_alloc %d "
"too big.", channels_alloc);
channels = xrealloc(channels,
(channels_alloc + 10) * sizeof(Channel *));
channels_alloc += 10;
debug2("channel: expanding %d", channels_alloc);
channels = xrealloc(channels, channels_alloc * sizeof(Channel *));
for (i = found; i < channels_alloc; i++)
channels[i] = NULL;
}
+2 -2
View File
@@ -100,12 +100,12 @@ detect_attack(u_char *buf, u_int32_t len, u_char *IV)
if (h == NULL) {
debug("Installing crc compensation attack detector.");
h = (u_int16_t *) xmalloc(l * HASH_ENTRYSIZE);
n = l;
h = (u_int16_t *) xmalloc(n * HASH_ENTRYSIZE);
} else {
if (l > n) {
h = (u_int16_t *) xrealloc(h, l * HASH_ENTRYSIZE);
n = l;
h = (u_int16_t *) xrealloc(h, n * HASH_ENTRYSIZE);
}
}
+7 -4
View File
@@ -308,18 +308,21 @@ addargs(arglist *args, char *fmt, ...)
{
va_list ap;
char buf[1024];
int nalloc;
va_start(ap, fmt);
vsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap);
nalloc = args->nalloc;
if (args->list == NULL) {
args->nalloc = 32;
nalloc = 32;
args->num = 0;
} else if (args->num+2 >= args->nalloc)
args->nalloc *= 2;
} else if (args->num+2 >= nalloc)
nalloc *= 2;
args->list = xrealloc(args->list, args->nalloc * sizeof(char *));
args->list = xrealloc(args->list, nalloc * sizeof(char *));
args->nalloc = nalloc;
args->list[args->num++] = xstrdup(buf);
args->list[args->num] = NULL;
}
+9 -7
View File
@@ -850,8 +850,9 @@ static void
child_set_env(char ***envp, u_int *envsizep, const char *name,
const char *value)
{
u_int i, namelen;
char **env;
u_int envsize;
u_int i, namelen;
/*
* Find the slot where the value should be stored. If the variable
@@ -868,12 +869,13 @@ child_set_env(char ***envp, u_int *envsizep, const char *name,
xfree(env[i]);
} else {
/* New variable. Expand if necessary. */
if (i >= (*envsizep) - 1) {
if (*envsizep >= 1000)
fatal("child_set_env: too many env vars,"
" skipping: %.100s", name);
(*envsizep) += 50;
env = (*envp) = xrealloc(env, (*envsizep) * sizeof(char *));
envsize = *envsizep;
if (i >= envsize - 1) {
if (envsize >= 1000)
fatal("child_set_env: too many env vars");
envsize += 50;
env = (*envp) = xrealloc(env, envsize * sizeof(char *));
*envsizep = envsize;
}
/* Need to set the NULL pointer at end of array beyond the new slot. */
env[i + 1] = NULL;
+8 -7
View File
@@ -715,7 +715,7 @@ process_message(SocketEntry *e)
static void
new_socket(sock_type type, int fd)
{
u_int i, old_alloc;
u_int i, old_alloc, new_alloc;
if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0)
error("fcntl O_NONBLOCK: %s", strerror(errno));
@@ -726,25 +726,26 @@ new_socket(sock_type type, int fd)
for (i = 0; i < sockets_alloc; i++)
if (sockets[i].type == AUTH_UNUSED) {
sockets[i].fd = fd;
sockets[i].type = type;
buffer_init(&sockets[i].input);
buffer_init(&sockets[i].output);
buffer_init(&sockets[i].request);
sockets[i].type = type;
return;
}
old_alloc = sockets_alloc;
sockets_alloc += 10;
new_alloc = sockets_alloc + 10;
if (sockets)
sockets = xrealloc(sockets, sockets_alloc * sizeof(sockets[0]));
sockets = xrealloc(sockets, new_alloc * sizeof(sockets[0]));
else
sockets = xmalloc(sockets_alloc * sizeof(sockets[0]));
for (i = old_alloc; i < sockets_alloc; i++)
sockets = xmalloc(new_alloc * sizeof(sockets[0]));
for (i = old_alloc; i < new_alloc; i++)
sockets[i].type = AUTH_UNUSED;
sockets[old_alloc].type = type;
sockets_alloc = new_alloc;
sockets[old_alloc].fd = fd;
buffer_init(&sockets[old_alloc].input);
buffer_init(&sockets[old_alloc].output);
buffer_init(&sockets[old_alloc].request);
sockets[old_alloc].type = type;
}
static int
+1 -1
View File
@@ -34,4 +34,4 @@
# Cipher 3des
# Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc
# EscapeChar ~
# VersionAddendum FreeBSD-20020629
# VersionAddendum FreeBSD-20030924
+1 -1
View File
@@ -14,7 +14,7 @@
# Note that some of FreeBSD's defaults differ from OpenBSD's, and
# FreeBSD has a few additional options.
#VersionAddendum FreeBSD-20020629
#VersionAddendum FreeBSD-20030924
#Port 22
#Protocol 2,1
+1 -1
View File
@@ -5,7 +5,7 @@
#define SSH_VERSION (ssh_version_get())
#define SSH_VERSION_BASE "OpenSSH_3.4p1"
#define SSH_VERSION_ADDENDUM "FreeBSD-20020702"
#define SSH_VERSION_ADDENDUM "FreeBSD-20030924"
const char *ssh_version_get(void);
void ssh_version_set_addendum(const char *add);
+90 -3
View File
@@ -2,6 +2,87 @@
OpenSSL CHANGES
_______________
Changes between 0.9.6h and 0.9.6i [19 Feb 2003]
*) In ssl3_get_record (ssl/s3_pkt.c), minimize information leaked
via timing by performing a MAC computation even if incorrrect
block cipher padding has been found. This is a countermeasure
against active attacks where the attacker has to distinguish
between bad padding and a MAC verification error. (CAN-2003-0078)
[Bodo Moeller; problem pointed out by Brice Canvel (EPFL),
Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
Martin Vuagnoux (EPFL, Ilion)]
Changes between 0.9.6g and 0.9.6h [5 Dec 2002]
*) New function OPENSSL_cleanse(), which is used to cleanse a section of
memory from it's contents. This is done with a counter that will
place alternating values in each byte. This can be used to solve
two issues: 1) the removal of calls to memset() by highly optimizing
compilers, and 2) cleansing with other values than 0, since those can
be read through on certain media, for example a swap space on disk.
[Geoff Thorpe]
*) Bugfix: client side session caching did not work with external caching,
because the session->cipher setting was not restored when reloading
from the external cache. This problem was masked, when
SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG (part of SSL_OP_ALL) was set.
(Found by Steve Haslam <[email protected]>.)
[Lutz Jaenicke]
*) Fix client_certificate (ssl/s2_clnt.c): The permissible total
length of the REQUEST-CERTIFICATE message is 18 .. 34, not 17 .. 33.
[Zeev Lieber <[email protected]>]
*) Undo an undocumented change introduced in 0.9.6e which caused
repeated calls to OpenSSL_add_all_ciphers() and
OpenSSL_add_all_digests() to be ignored, even after calling
EVP_cleanup().
[Richard Levitte]
*) Change the default configuration reader to deal with last line not
being properly terminated.
[Richard Levitte]
*) Change X509_NAME_cmp() so it applies the special rules on handling
DN values that are of type PrintableString, as well as RDNs of type
emailAddress where the value has the type ia5String.
[[email protected] via Richard Levitte]
*) Add a SSL_SESS_CACHE_NO_INTERNAL_STORE flag to take over half
the job SSL_SESS_CACHE_NO_INTERNAL_LOOKUP was inconsistently
doing, define a new flag (SSL_SESS_CACHE_NO_INTERNAL) to be
the bitwise-OR of the two for use by the majority of applications
wanting this behaviour, and update the docs. The documented
behaviour and actual behaviour were inconsistent and had been
changing anyway, so this is more a bug-fix than a behavioural
change.
[Geoff Thorpe, diagnosed by Nadav Har'El]
*) Don't impose a 16-byte length minimum on session IDs in ssl/s3_clnt.c
(the SSL 3.0 and TLS 1.0 specifications allow any length up to 32 bytes).
[Bodo Moeller]
*) Fix initialization code race conditions in
SSLv23_method(), SSLv23_client_method(), SSLv23_server_method(),
SSLv2_method(), SSLv2_client_method(), SSLv2_server_method(),
SSLv3_method(), SSLv3_client_method(), SSLv3_server_method(),
TLSv1_method(), TLSv1_client_method(), TLSv1_server_method(),
ssl2_get_cipher_by_char(),
ssl3_get_cipher_by_char().
[Patrick McCormick <[email protected]>, Bodo Moeller]
*) Reorder cleanup sequence in SSL_CTX_free(): only remove the ex_data after
the cached sessions are flushed, as the remove_cb() might use ex_data
contents. Bug found by Sam Varshavchik <[email protected]>
(see [openssl.org #212]).
[Geoff Thorpe, Lutz Jaenicke]
*) Fix typo in OBJ_txt2obj which incorrectly passed the content
length, instead of the encoding length to d2i_ASN1_OBJECT.
[Steve Henson]
Changes between 0.9.6f and 0.9.6g [9 Aug 2002]
*) [In 0.9.6g-engine release:]
@@ -23,6 +104,12 @@
Changes between 0.9.6d and 0.9.6e [30 Jul 2002]
*) Add various sanity checks to asn1_get_length() to reject
the ASN1 length bytes if they exceed sizeof(long), will appear
negative or the content length exceeds the length of the
supplied buffer.
[Steve Henson, Adi Stav <[email protected]>, James Yonan <[email protected]>]
*) Fix cipher selection routines: ciphers without encryption had no flags
for the cipher strength set and where therefore not handled correctly
by the selection routines (PR #130).
@@ -54,7 +141,7 @@
*) Add various sanity checks to asn1_get_length() to reject
the ASN1 length bytes if they exceed sizeof(long), will appear
negative or the content length exceeds the length of the
supplied buffer.
supplied buffer. (CAN-2002-0659)
[Steve Henson, Adi Stav <[email protected]>, James Yonan <[email protected]>]
*) Assertions for various potential buffer overflows, not known to
@@ -159,8 +246,8 @@
value is 0.
[Richard Levitte]
*) [In 0.9.6c-engine release:]
Fix a crashbug and a logic bug in hwcrhk_load_pubkey()
*) [In 0.9.6d-engine release:]
Fix a crashbug and a logic bug in hwcrhk_load_pubkey().
[Toomas Kiisk <[email protected]> via Richard Levitte]
*) Add the configuration target linux-s390x.
+27 -9
View File
@@ -122,7 +122,7 @@ my %table=(
"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -DBIO_PAIR_DEBUG -g -m486 -pedantic -Wshadow -Wall::-D_REENTRANT::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
"debug-ulf", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -O2 -m486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -O2 -m486 -pedantic -Wall -Werror -Wshadow -pipe::-D_REENTRANT::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
"debug-levitte-linux-elf","gcc:-DUSE_ALLOCATING_PRINT -DRL_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DNO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -ggdb -g3 -m486 -pedantic -ansi -Wall -Wshadow -Wid-clash-31 -pipe::-D_REENTRANT:-ldl:::::::::::dlfcn",
"debug-levitte-linux-elf","gcc:-DUSE_ALLOCATING_PRINT -DRL_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DNO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -ggdb -g3 -m486 -pedantic -ansi -Wall -Wshadow -Wstrict-prototypes -Wmissing-prototypes -pipe::-D_REENTRANT:-ldl:::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"dist", "cc:-O::(unknown):::::",
# Basic configs that should work on any (32 and less bit) box
@@ -395,7 +395,7 @@ my %table=(
"aix-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR:::",
"aix-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR:::",
"aix43-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:",
"aix43-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:",
"aix43-gcc", "gcc:-O1 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:",
#
# Cray T90 and similar (SDSC)
@@ -477,7 +477,7 @@ my %table=(
# Cygwin
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32:cygwin-shared:::.dll",
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -march=i486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32:cygwin-shared:::.dll",
# Ultrix from Bernhard Simon <[email protected]>
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown)::::::",
@@ -495,12 +495,18 @@ my %table=(
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
"darwin-ppc-cc","cc:-O3 -D_DARWIN -DB_ENDIAN -fno-common::-D_REENTRANT::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
##### A/UX
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
##### Sony NEWS-OS 4.x
"newsos4-gcc","gcc:-O -DB_ENDIAN -DNEWS4::(unknown):-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
##### VxWorks for various targets
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DVXWORKS -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::-r:::::",
##### Compaq Non-Stop Kernel (Tandem)
"tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown)::THIRTY_TWO_BIT:::",
);
my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
@@ -577,6 +583,7 @@ my $libs;
my $target;
my $options;
my $symlink;
my $make_depend=0;
my @argvcopy=@ARGV;
my $argvstring="";
@@ -619,7 +626,7 @@ PROCESS_ARGS:
{ $threads=1; }
elsif (/^no-shared$/)
{ $no_shared=1; }
elsif (/^shared$/)
elsif (/^shared$/ || /^-shared$/ || /^--shared$/)
{ $no_shared=0; }
elsif (/^no-symlinks$/)
{ $symlink=0; }
@@ -1188,11 +1195,13 @@ if($IsWindows) {
EOF
close(OUT);
} else {
(system "make -f Makefile.ssl PERL=\'$perl\' links") == 0 or exit $?
if $symlink;
### (system 'make depend') == 0 or exit $? if $depflags ne "";
# Run "make depend" manually if you want to be able to delete
# the source code files of ciphers you left out.
my $make_command = "make -f Makefile.ssl PERL=\'$perl\'";
my $make_targets = "";
$make_targets .= " links" if $symlink;
$make_targets .= " depend" if $depflags ne "" && $make_depend;
$make_targets .= " gentests" if $symlink;
(system $make_command.$make_targets) == 0 or exit $?
if $make_targets ne "";
if ( $perl =~ m@^/@) {
&dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
&dofile("apps/der_chop",$perl,'^#!/', '#!%s');
@@ -1202,6 +1211,15 @@ EOF
&dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
&dofile("apps/der_chop",'/usr/local/bin/perl','^#!/', '#!%s');
&dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
}
if ($depflags ne "" && !$make_depend) {
print <<EOF;
Since you've disabled at least one algorithm, you need to do the following
before building:
make depend
EOF
}
}
+50 -22
View File
@@ -9,6 +9,7 @@ OpenSSL - Frequently Asked Questions
* Where can I get a compiled version of OpenSSL?
* Why aren't tools like 'autoconf' and 'libtool' used?
* What is an 'engine' version?
* How do I check the authenticity of the OpenSSL distribution?
[LEGAL] Legal questions
@@ -35,6 +36,7 @@ OpenSSL - Frequently Asked Questions
* Why does the linker complain about undefined symbols?
* Why does the OpenSSL test fail with "bc: command not found"?
* Why does the OpenSSL test fail with "bc: 1 no implemented"?
* Why does the OpenSSL test fail with "bc: stack empty"?
* Why does the OpenSSL compilation fail on Alpha Tru64 Unix?
* Why does the OpenSSL compilation fail with "ar: command not found"?
* Why does the OpenSSL compilation fail on Win32 with VC++?
@@ -61,7 +63,7 @@ OpenSSL - Frequently Asked Questions
* Which is the current version of OpenSSL?
The current version is available from <URL: http://www.openssl.org>.
OpenSSL 0.9.6g was released on 9 August 2002.
OpenSSL 0.9.7a was released on February 19, 2003.
In addition to the current stable release, you can also access daily
snapshots of the OpenSSL development version at <URL:
@@ -132,6 +134,19 @@ hardware. This was realized in a special release '0.9.6-engine'. With
version 0.9.7 (not yet released) the changes were merged into the main
development line, so that the special release is no longer necessary.
* How do I check the authenticity of the OpenSSL distribution?
We provide MD5 digests and ASC signatures of each tarball.
Use MD5 to check that a tarball from a mirror site is identical:
md5sum TARBALL | awk '{print $1;}' | cmp - TARBALL.md5
You can check authenticity using pgp or gpg. You need the OpenSSL team
member public key used to sign it (download it from a key server). Then
just do:
pgp TARBALL.asc
[LEGAL] =======================================================================
* Do I need patent licenses to use OpenSSL?
@@ -169,18 +184,30 @@ for permission to use their software with OpenSSL.
Cryptographic software needs a source of unpredictable data to work
correctly. Many open source operating systems provide a "randomness
device" that serves this purpose. On other systems, applications have
to call the RAND_add() or RAND_seed() function with appropriate data
before generating keys or performing public key encryption.
(These functions initialize the pseudo-random number generator, PRNG.)
device" (/dev/urandom or /dev/random) that serves this purpose.
All OpenSSL versions try to use /dev/urandom by default; starting with
version 0.9.7, OpenSSL also tries /dev/random if /dev/urandom is not
available.
Some broken applications do not do this. As of version 0.9.5, the
OpenSSL functions that need randomness report an error if the random
number generator has not been seeded with at least 128 bits of
randomness. If this error occurs, please contact the author of the
application you are using. It is likely that it never worked
correctly. OpenSSL 0.9.5 and later make the error visible by refusing
to perform potentially insecure encryption.
On other systems, applications have to call the RAND_add() or
RAND_seed() function with appropriate data before generating keys or
performing public key encryption. (These functions initialize the
pseudo-random number generator, PRNG.) Some broken applications do
not do this. As of version 0.9.5, the OpenSSL functions that need
randomness report an error if the random number generator has not been
seeded with at least 128 bits of randomness. If this error occurs and
is not discussed in the documentation of the application you are
using, please contact the author of that application; it is likely
that it never worked correctly. OpenSSL 0.9.5 and later make the
error visible by refusing to perform potentially insecure encryption.
If you are using Solaris 8, you can add /dev/urandom and /dev/random
devices by installing patch 112438 (Sparc) or 112439 (x86), which are
available via the Patchfinder at <URL: http://sunsolve.sun.com>
(Solaris 9 includes these devices by default). For /dev/random support
for earlier Solaris versions, see Sun's statement at
<URL: http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsrdb/27606&zone_32=SUNWski>
(the SUNWski package is available in patch 105710).
On systems without /dev/urandom and /dev/random, it is a good idea to
use the Entropy Gathering Demon (EGD); see the RAND_egd() manpage for
@@ -213,16 +240,6 @@ OpenSSL command line tools. Applications using the OpenSSL library
provide their own configuration options to specify the entropy source,
please check out the documentation coming the with application.
For Solaris 2.6, Tim Nibbe <[email protected]> and others have suggested
installing the SUNski package from Sun patch 105710-01 (Sparc) which
adds a /dev/random device and make sure it gets used, usually through
$RANDFILE. There are probably similar patches for the other Solaris
versions. An official statement from Sun with respect to /dev/random
support can be found at
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsrdb/27606&zone_32=SUNWski
However, be warned that /dev/random is usually a blocking device, which
may have some effects on OpenSSL.
* Why do I get an "unable to write 'random state'" error message?
@@ -392,6 +409,17 @@ and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
for download instructions) can be safely used, for example.
* Why does the OpenSSL test fail with "bc: stack empty"?
On some DG/ux versions, bc seems to have a too small stack for calculations
that the OpenSSL bntest throws at it. This gets triggered when you run the
test suite (using "make test"). The message returned is "bc: stack empty".
The best way to deal with this is to find another implementation of bc
and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
for download instructions) can be safely used, for example.
* Why does the OpenSSL compilation fail on Alpha Tru64 Unix?
On some Alpha installations running Tru64 Unix and Compaq C, the compilation
+15 -3
View File
@@ -129,8 +129,8 @@
standard headers). If it is a problem with OpenSSL itself, please
report the problem to <[email protected]> (note that your
message will be recorded in the request tracker publicly readable
via http://www.openssl.org/rt2.html and will be forwarded to a public
mailing list). Include the output of "make report" in your message.
via http://www.openssl.org/support/rt2.html and will be forwarded to a
public mailing list). Include the output of "make report" in your message.
Please check out the request tracker. Maybe the bug was already
reported or has already been fixed.
@@ -151,7 +151,7 @@
in Makefile.ssl and run "make clean; make". Please send a bug
report to <[email protected]>, including the output of
"make report" in order to be added to the request tracker at
http://www.openssl.org/rt2.html.
http://www.openssl.org/support/rt2.html.
4. If everything tests ok, install OpenSSL with
@@ -285,3 +285,15 @@
targets for shared library creation, like linux-shared. Those targets
can currently be used on their own just as well, but this is expected
to change in future versions of OpenSSL.
Note on random number generation
--------------------------------
Availability of cryptographically secure random numbers is required for
secret key generation. OpenSSL provides several options to seed the
internal PRNG. If not properly seeded, the internal PRNG will refuse
to deliver random bytes and a "PRNG not seeded error" will occur.
On systems without /dev/urandom (or similar) device, it may be necessary
to install additional support software to obtain random seed.
Please check out the manual pages for RAND_add(), RAND_bytes(), RAND_egd(),
and the FAQ for more information.
+24 -15
View File
@@ -270,9 +270,7 @@ do_gnu-shared:
done
DETECT_GNU_LD=${CC} -v 2>&1 | grep '^gcc' >/dev/null 2>&1 && \
collect2=`gcc -print-prog-name=collect2 2>&1` && \
[ -n "$$collect2" ] && \
my_ld=`$$collect2 --help 2>&1 | grep Usage: | sed 's/^Usage: *\([^ ][^ ]*\).*/\1/'` && \
my_ld=`${CC} -print-prog-name=ld 2>&1` && \
[ -n "$$my_ld" ] && \
$$my_ld -v 2>&1 | grep 'GNU ld' >/dev/null 2>&1
@@ -529,6 +527,10 @@ links:
fi; \
done;
gentests:
@(cd test && echo "generating dummy tests (if needed)..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
dclean:
rm -f *.bak
@for i in $(DIRS) ;\
@@ -610,6 +612,9 @@ update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_
# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
# tar does not support the --files-from option.
tar:
find . -type d -print | xargs chmod 755
find . -type f -print | xargs chmod a+r
find . -type f -perm -0100 -print | xargs chmod a+x
find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
tardy --user_number=0 --user_name=openssl \
@@ -652,9 +657,10 @@ install: all install_docs
do \
if [ -f "$$i" ]; then \
( echo installing $$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
fi; \
done
@if [ -n "$(SHARED_LIBS)" ]; then \
@@ -664,14 +670,17 @@ install: all install_docs
if [ -f "$$i" -o -f "$$i.a" ]; then \
( echo installing $$i; \
if [ "$(PLATFORM)" != "Cygwin" ]; then \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
else \
c=`echo $$i | sed 's/^lib/cyg/'`; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
fi ); \
fi; \
done; \
@@ -687,13 +696,13 @@ install_docs:
$(INSTALL_PREFIX)$(MANDIR)/man3 \
$(INSTALL_PREFIX)$(MANDIR)/man5 \
$(INSTALL_PREFIX)$(MANDIR)/man7
@pod2man=`cd util; ./pod2mantest ignore`; \
@pod2man="`cd util; ./pod2mantest $(PERL)`"; \
for i in doc/apps/*.pod; do \
fn=`basename $$i .pod`; \
if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$(PERL) $$pod2man \
sh -c "$$pod2man \
--section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
@@ -703,7 +712,7 @@ install_docs:
if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$(PERL) $$pod2man \
sh -c "$$pod2man \
--section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
+45 -36
View File
@@ -4,23 +4,23 @@
## Makefile for OpenSSL
##
VERSION=0.9.6g
VERSION=0.9.6i
MAJOR=0
MINOR=9.6
SHLIB_VERSION_NUMBER=0.9.6
SHLIB_VERSION_HISTORY=
SHLIB_MAJOR=0
SHLIB_MINOR=9.6
SHLIB_EXT=
PLATFORM=dist
OPTIONS=
CONFIGURE_ARGS=dist
SHLIB_TARGET=
SHLIB_EXT=.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
PLATFORM=FreeBSD-elf
OPTIONS=386
CONFIGURE_ARGS=FreeBSD-elf 386
SHLIB_TARGET=bsd-gcc-shared
# INSTALL_PREFIX is for package builders so that they can configure
# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
# Normally it is left empty.
INSTALL_PREFIX=
INSTALL_PREFIX=/var/tmp/ssl
INSTALLTOP=/usr/local/ssl
# Do not edit this manually. Use Configure --openssldir=DIR do change this!
@@ -55,21 +55,21 @@ OPENSSLDIR=/usr/local/ssl
# equal 4.
# PKCS1_CHECK - pkcs1 tests.
CC= cc
CC= gcc
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
CFLAG= -O
CFLAG= -fPIC -DTHREADS -pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
DEPFLAG=
PEX_LIBS=
EX_LIBS=
EXE_EXT=
AR=ar r
RANLIB= /usr/bin/ranlib
PERL= /usr/local/bin/perl
PERL= /usr/local/bin/perl5
TAR= tar
TARFLAGS= --no-recursion
# Set BN_ASM to bn_asm.o if you want to use the C version
BN_ASM= bn_asm.o
BN_ASM= asm/bn86-elf.o asm/co86-elf.o
#BN_ASM= bn_asm.o
#BN_ASM= asm/bn86-elf.o # elf, linux-elf
#BN_ASM= asm/bn86-sol.o # solaris
@@ -85,11 +85,11 @@ BN_ASM= bn_asm.o
# For x86 assembler: Set PROCESSOR to 386 if you want to support
# the 80386.
PROCESSOR=
PROCESSOR= 386
# Set DES_ENC to des_enc.o if you want to use the C version
#There are 4 x86 assember options.
DES_ENC= des_enc.o fcrypt_b.o
DES_ENC= asm/dx86-elf.o asm/yx86-elf.o
#DES_ENC= des_enc.o fcrypt_b.o # C
#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
@@ -98,7 +98,7 @@ DES_ENC= des_enc.o fcrypt_b.o
# Set BF_ENC to bf_enc.o if you want to use the C version
#There are 4 x86 assember options.
BF_ENC= bf_enc.o
BF_ENC= asm/bx86-elf.o
#BF_ENC= bf_enc.o
#BF_ENC= asm/bx86-elf.o # elf
#BF_ENC= asm/bx86-sol.o # solaris
@@ -107,7 +107,7 @@ BF_ENC= bf_enc.o
# Set CAST_ENC to c_enc.o if you want to use the C version
#There are 4 x86 assember options.
CAST_ENC= c_enc.o
CAST_ENC= asm/cx86-elf.o
#CAST_ENC= c_enc.o
#CAST_ENC= asm/cx86-elf.o # elf
#CAST_ENC= asm/cx86-sol.o # solaris
@@ -116,7 +116,7 @@ CAST_ENC= c_enc.o
# Set RC4_ENC to rc4_enc.o if you want to use the C version
#There are 4 x86 assember options.
RC4_ENC= rc4_enc.o
RC4_ENC= asm/rx86-elf.o
#RC4_ENC= rc4_enc.o
#RC4_ENC= asm/rx86-elf.o # elf
#RC4_ENC= asm/rx86-sol.o # solaris
@@ -125,7 +125,7 @@ RC4_ENC= rc4_enc.o
# Set RC5_ENC to rc5_enc.o if you want to use the C version
#There are 4 x86 assember options.
RC5_ENC= rc5_enc.o
RC5_ENC= asm/r586-elf.o
#RC5_ENC= rc5_enc.o
#RC5_ENC= asm/r586-elf.o # elf
#RC5_ENC= asm/r586-sol.o # solaris
@@ -133,21 +133,21 @@ RC5_ENC= rc5_enc.o
#RC5_ENC= asm/r586bsdi.o # bsdi
# Also need MD5_ASM defined
MD5_ASM_OBJ=
MD5_ASM_OBJ= asm/mx86-elf.o
#MD5_ASM_OBJ= asm/mx86-elf.o # elf
#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
# Also need SHA1_ASM defined
SHA1_ASM_OBJ=
SHA1_ASM_OBJ= asm/sx86-elf.o
#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
# Also need RMD160_ASM defined
RMD160_ASM_OBJ=
RMD160_ASM_OBJ= asm/rm86-elf.o
#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
@@ -184,7 +184,7 @@ LIBS= libcrypto.a libssl.a
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
SHARED_SSL=libssl$(SHLIB_EXT)
SHARED_LIBS=
SHARED_LIBS_LINK_EXTS=
SHARED_LIBS_LINK_EXTS=.so.$(SHLIB_MAJOR) .so
SHARED_LDFLAGS=
GENERAL= Makefile
@@ -272,9 +272,7 @@ do_gnu-shared:
done
DETECT_GNU_LD=${CC} -v 2>&1 | grep '^gcc' >/dev/null 2>&1 && \
collect2=`gcc -print-prog-name=collect2 2>&1` && \
[ -n "$$collect2" ] && \
my_ld=`$$collect2 --help 2>&1 | grep Usage: | sed 's/^Usage: *\([^ ][^ ]*\).*/\1/'` && \
my_ld=`${CC} -print-prog-name=ld 2>&1` && \
[ -n "$$my_ld" ] && \
$$my_ld -v 2>&1 | grep 'GNU ld' >/dev/null 2>&1
@@ -531,6 +529,10 @@ links:
fi; \
done;
gentests:
@(cd test && echo "generating dummy tests (if needed)..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
dclean:
rm -f *.bak
@for i in $(DIRS) ;\
@@ -612,6 +614,9 @@ update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_
# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
# tar does not support the --files-from option.
tar:
find . -type d -print | xargs chmod 755
find . -type f -print | xargs chmod a+r
find . -type f -perm -0100 -print | xargs chmod a+x
find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
tardy --user_number=0 --user_name=openssl \
@@ -654,9 +659,10 @@ install: all install_docs
do \
if [ -f "$$i" ]; then \
( echo installing $$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
fi; \
done
@if [ -n "$(SHARED_LIBS)" ]; then \
@@ -666,14 +672,17 @@ install: all install_docs
if [ -f "$$i" -o -f "$$i.a" ]; then \
( echo installing $$i; \
if [ "$(PLATFORM)" != "Cygwin" ]; then \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
else \
c=`echo $$i | sed 's/^lib/cyg/'`; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
fi ); \
fi; \
done; \
@@ -689,13 +698,13 @@ install_docs:
$(INSTALL_PREFIX)$(MANDIR)/man3 \
$(INSTALL_PREFIX)$(MANDIR)/man5 \
$(INSTALL_PREFIX)$(MANDIR)/man7
@pod2man=`cd util; ./pod2mantest ignore`; \
@pod2man="`cd util; ./pod2mantest $(PERL)`"; \
for i in doc/apps/*.pod; do \
fn=`basename $$i .pod`; \
if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$(PERL) $$pod2man \
sh -c "$$pod2man \
--section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
@@ -705,7 +714,7 @@ install_docs:
if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$(PERL) $$pod2man \
sh -c "$$pod2man \
--section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
+18
View File
@@ -5,6 +5,24 @@
This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file.
Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i:
o Important security related bugfixes.
Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h:
o New configuration targets for Tandem OSS and A/UX.
o New OIDs for Microsoft attributes.
o Better handling of SSL session caching.
o Better comparison of distinguished names.
o Better handling of shared libraries in a mixed GNU/non-GNU environment.
o Support assembler code with Borland C.
o Fixes for length problems.
o Fixes for uninitialised variables.
o Fixes for memory leaks, some unusual crashes and some race conditions.
o Fixes for smaller building problems.
o Updates of manuals, FAQ and other instructive documents.
Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g:
o Important building fixes on Unix.
+16
View File
@@ -40,3 +40,19 @@ scripts use the same name for output and input files, which means different
will interfere with each other and lead to test failure.
The solution is simple for now: don't run parallell make when testing.
* Bugs in gcc 3.0 triggered
According to a problem report, there are bugs in gcc 3.0 that are
triggered by some of the code in OpenSSL, more specifically in
PEM_get_EVP_CIPHER_INFO(). The triggering code is the following:
header+=11;
if (*header != '4') return(0); header++;
if (*header != ',') return(0); header++;
What happens is that gcc might optimize a little too agressively, and
you end up with an extra incrementation when *header != '4'.
We recommend that you upgrade gcc to as high a 3.x version as you can.
+2 -2
View File
@@ -1,7 +1,7 @@
OpenSSL 0.9.6g 9 August 2002
OpenSSL 0.9.6i Feb 19 2003
Copyright (c) 1998-2002 The OpenSSL Project
Copyright (c) 1998-2003 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
All rights reserved.
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/local/bin/perl
#!/usr/local/bin/perl5
#
# CA - wrapper around ca to make it easier to use ... basically ca requires
# some setup stuff to be done before you can use it and this makes
+3 -3
View File
@@ -117,7 +117,7 @@ lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(SRC)
$(MAKEDEPEND) -- $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
@@ -128,10 +128,10 @@ clean:
rm -f req
$(DLIBSSL):
(cd ../ssl; $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}')
(cd ..; $(MAKE) DIRS=ssl all)
$(DLIBCRYPTO):
(cd ../crypto; $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}')
(cd ..; $(MAKE) DIRS=crypto all)
$(PROGRAM): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
$(RM) $(PROGRAM)
+2
View File
@@ -92,8 +92,10 @@ int WIN32_rename(char *oldname,char *newname);
#define MAIN(a,v) main(a,v)
#ifndef NON_MAIN
LHASH *config=NULL;
BIO *bio_err=NULL;
#else
extern LHASH *config;
extern BIO *bio_err;
#endif
+1 -1
View File
@@ -328,6 +328,6 @@ end:
if (at != NULL) ASN1_TYPE_free(at);
if (osk != NULL) sk_free(osk);
OBJ_cleanup();
EXIT(ret);
OPENSSL_EXIT(ret);
}
+21 -8
View File
@@ -543,7 +543,7 @@ bad:
goto err;
}
pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,key);
if(key) memset(key,0,strlen(key));
if(key) OPENSSL_cleanse(key,strlen(key));
if (pkey == NULL)
{
BIO_printf(bio_err,"unable to load CA private key\n");
@@ -606,12 +606,14 @@ bad:
that to access(). However, time's too short to do that just
now.
*/
#ifndef VXWORKS
if (access(outdir,R_OK|W_OK|X_OK) != 0)
{
BIO_printf(bio_err,"I am unable to access the %s directory\n",outdir);
perror(outdir);
goto err;
}
#endif
if (stat(outdir,&sb) != 0)
{
@@ -829,9 +831,14 @@ bad:
}
if (verbose)
{
if ((f=BN_bn2hex(serial)) == NULL) goto err;
BIO_printf(bio_err,"next serial number is %s\n",f);
OPENSSL_free(f);
if (BN_is_zero(serial))
BIO_printf(bio_err,"next serial number is 00\n");
else
{
if ((f=BN_bn2hex(serial)) == NULL) goto err;
BIO_printf(bio_err,"next serial number is %s\n",f);
OPENSSL_free(f);
}
}
if ((attribs=CONF_get_section(conf,policy)) == NULL)
@@ -1275,7 +1282,7 @@ err:
X509_CRL_free(crl);
CONF_free(conf);
OBJ_cleanup();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void lookup_fail(char *name, char *tag)
@@ -1340,7 +1347,7 @@ static BIGNUM *load_serial(char *serialfile)
ret=ASN1_INTEGER_to_BN(ai,NULL);
if (ret == NULL)
{
BIO_printf(bio_err,"error converting number from bin to BIGNUM");
BIO_printf(bio_err,"error converting number from bin to BIGNUM\n");
goto err;
}
err:
@@ -1728,7 +1735,10 @@ again2:
BIO_printf(bio_err,"The subject name appears to be ok, checking data base for clashes\n");
row[DB_name]=X509_NAME_oneline(subject,NULL,0);
row[DB_serial]=BN_bn2hex(serial);
if (BN_is_zero(serial))
row[DB_serial]=BUF_strdup("00");
else
row[DB_serial]=BN_bn2hex(serial);
if ((row[DB_name] == NULL) || (row[DB_serial] == NULL))
{
BIO_printf(bio_err,"Memory allocation failure\n");
@@ -2142,7 +2152,10 @@ static int do_revoke(X509 *x509, TXT_DB *db)
row[i]=NULL;
row[DB_name]=X509_NAME_oneline(X509_get_subject_name(x509),NULL,0);
bn = ASN1_INTEGER_to_BN(X509_get_serialNumber(x509),NULL);
row[DB_serial]=BN_bn2hex(bn);
if (BN_is_zero(bn))
row[DB_serial]=BUF_strdup("00");
else
row[DB_serial]=BN_bn2hex(bn);
BN_free(bn);
if ((row[DB_name] == NULL) || (row[DB_serial] == NULL))
{
+1 -1
View File
@@ -202,6 +202,6 @@ end:
if (ctx != NULL) SSL_CTX_free(ctx);
if (ssl != NULL) SSL_free(ssl);
if (STDout != NULL) BIO_free_all(STDout);
EXIT(ret);
OPENSSL_EXIT(ret);
}
+1 -1
View File
@@ -364,7 +364,7 @@ end:
X509_STORE_CTX_cleanup(&ctx);
X509_STORE_free(store);
}
EXIT(ret);
OPENSSL_EXIT(ret);
}
static X509_CRL *load_crl(char *infile, int format)
+2 -2
View File
@@ -166,7 +166,7 @@ bad:
BIO_printf(bio_err," -certfile arg certificates file of chain to a trusted CA\n");
BIO_printf(bio_err," (can be used more than once)\n");
BIO_printf(bio_err," -nocrl no crl to load, just certs from '-certfile'\n");
EXIT(1);
OPENSSL_EXIT(1);
}
ERR_load_crypto_strings();
@@ -278,7 +278,7 @@ end:
if (p7 != NULL) PKCS7_free(p7);
if (crl != NULL) X509_CRL_free(crl);
EXIT(ret);
OPENSSL_EXIT(ret);
}
/*
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/local/bin/perl
#!/usr/local/bin/perl5
#
# der_chop ... this is one total hack that Eric is really not proud of
# so don't look at it and don't ask for support
+2 -2
View File
@@ -327,7 +327,7 @@ int MAIN(int argc, char **argv)
end:
if (buf != NULL)
{
memset(buf,0,BUFSIZE);
OPENSSL_cleanse(buf,BUFSIZE);
OPENSSL_free(buf);
}
if (in != NULL) BIO_free(in);
@@ -335,7 +335,7 @@ end:
EVP_PKEY_free(sigkey);
if(sigbuf) OPENSSL_free(sigbuf);
if (bmd != NULL) BIO_free(bmd);
EXIT(err);
OPENSSL_EXIT(err);
}
void do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
+1 -1
View File
@@ -319,6 +319,6 @@ end:
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free_all(out);
if (dh != NULL) DH_free(dh);
EXIT(ret);
OPENSSL_EXIT(ret);
}
#endif
+1 -1
View File
@@ -506,7 +506,7 @@ end:
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free_all(out);
if (dh != NULL) DH_free(dh);
EXIT(ret);
OPENSSL_EXIT(ret);
}
/* dh_cb is identical to dsa_cb in apps/dsaparam.c */
+1 -1
View File
@@ -293,6 +293,6 @@ end:
if(dsa != NULL) DSA_free(dsa);
if(passin) OPENSSL_free(passin);
if(passout) OPENSSL_free(passout);
EXIT(ret);
OPENSSL_EXIT(ret);
}
#endif
+1 -1
View File
@@ -357,7 +357,7 @@ end:
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free_all(out);
if (dsa != NULL) DSA_free(dsa);
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void MS_CALLBACK dsa_cb(int p, int n, void *arg)
+3 -3
View File
@@ -506,9 +506,9 @@ bad:
* bug picked up by
* Larry J. Hughes Jr. <hughes@indiana.edu> */
if (str == strbuf)
memset(str,0,SIZE);
OPENSSL_cleanse(str,SIZE);
else
memset(str,0,strlen(str));
OPENSSL_cleanse(str,strlen(str));
}
if ((hiv != NULL) && !set_hex(hiv,iv,8))
{
@@ -604,7 +604,7 @@ end:
if (benc != NULL) BIO_free(benc);
if (b64 != NULL) BIO_free(b64);
if(pass) OPENSSL_free(pass);
EXIT(ret);
OPENSSL_EXIT(ret);
}
int set_hex(char *in, unsigned char *out, int size)
+1 -1
View File
@@ -121,5 +121,5 @@ int MAIN(int argc, char **argv)
ret++;
}
}
EXIT(ret);
OPENSSL_EXIT(ret);
}
+1 -1
View File
@@ -184,7 +184,7 @@ end:
ERR_print_errors(bio_err);
if (out != NULL) BIO_free_all(out);
if (dh != NULL) DH_free(dh);
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void MS_CALLBACK dh_cb(int p, int n, void *arg)
+1 -1
View File
@@ -220,6 +220,6 @@ end:
if (out != NULL) BIO_free_all(out);
if (dsa != NULL) DSA_free(dsa);
if(passout) OPENSSL_free(passout);
EXIT(ret);
OPENSSL_EXIT(ret);
}
#endif
+1 -1
View File
@@ -224,7 +224,7 @@ err:
if(passout) OPENSSL_free(passout);
if (ret != 0)
ERR_print_errors(bio_err);
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void MS_CALLBACK genrsa_cb(int p, int n, void *arg)
+2 -2
View File
@@ -102,7 +102,7 @@ int MAIN(int argc, char **argv)
BIO_printf (bio_err, "-in file input file\n");
BIO_printf (bio_err, "-out file output file\n");
BIO_printf (bio_err, "-toseq output NS Sequence file\n");
EXIT(1);
OPENSSL_EXIT(1);
}
if (infile) {
@@ -162,6 +162,6 @@ end:
BIO_free_all(out);
NETSCAPE_CERT_SEQUENCE_free(seq);
EXIT(ret);
OPENSSL_EXIT(ret);
}
+2 -2
View File
@@ -77,11 +77,11 @@ static unsigned long MS_CALLBACK hash(FUNCTION *a);
static int MS_CALLBACK cmp(FUNCTION *a,FUNCTION *b);
static LHASH *prog_init(void );
static int do_cmd(LHASH *prog,int argc,char *argv[]);
LHASH *config=NULL;
char *default_config_file=NULL;
/* Make sure there is only one when MONOLITH is defined */
#ifdef MONOLITH
LHASH *config=NULL;
BIO *bio_err=NULL;
#endif
@@ -215,7 +215,7 @@ end:
BIO_free(bio_err);
bio_err=NULL;
}
EXIT(ret);
OPENSSL_EXIT(ret);
}
#define LIST_STANDARD_COMMANDS "list-standard-commands"
-1
View File
@@ -2,7 +2,6 @@
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
# $FreeBSD$
# This definition stops the following lines choking if HOME isn't
# defined.
+2 -2
View File
@@ -284,7 +284,7 @@ err:
BIO_free(in);
if (out)
BIO_free_all(out);
EXIT(ret);
OPENSSL_EXIT(ret);
}
@@ -498,6 +498,6 @@ err:
int MAIN(int argc, char **argv)
{
fputs("Program not available.\n", stderr)
EXIT(1);
OPENSSL_EXIT(1);
}
#endif
+5 -7
View File
@@ -480,9 +480,10 @@ int MAIN(int argc, char **argv)
/* Exclude verified certificate */
for (i = 1; i < sk_X509_num (chain2) ; i++)
sk_X509_push(certs, sk_X509_value (chain2, i));
}
sk_X509_free(chain2);
if (vret) {
/* Free first certificate */
X509_free(sk_X509_value(chain2, 0));
sk_X509_free(chain2);
} else {
BIO_printf (bio_err, "Error %s getting chain.\n",
X509_verify_cert_error_string(vret));
goto export_end;
@@ -509,8 +510,6 @@ int MAIN(int argc, char **argv)
}
sk_X509_pop_free(certs, X509_free);
certs = NULL;
/* ucert is part of certs so it is already freed */
ucert = NULL;
#ifdef CRYPTO_MDEBUG
CRYPTO_pop_info();
@@ -598,7 +597,6 @@ int MAIN(int argc, char **argv)
if (certs) sk_X509_pop_free(certs, X509_free);
if (safes) sk_PKCS7_pop_free(safes, PKCS7_free);
if (bags) sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);
if (ucert) X509_free(ucert);
#ifdef CRYPTO_MDEBUG
CRYPTO_pop_info();
@@ -668,7 +666,7 @@ int MAIN(int argc, char **argv)
if (canames) sk_free(canames);
if(passin) OPENSSL_free(passin);
if(passout) OPENSSL_free(passout);
EXIT(ret);
OPENSSL_EXIT(ret);
}
int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,
+2 -2
View File
@@ -154,7 +154,7 @@ bad:
BIO_printf(bio_err," -print_certs print any certs or crl in the input\n");
BIO_printf(bio_err," -text print full details of certificates\n");
BIO_printf(bio_err," -noout don't output encoded data\n");
EXIT(1);
OPENSSL_EXIT(1);
}
ERR_load_crypto_strings();
@@ -289,5 +289,5 @@ end:
if (p7 != NULL) PKCS7_free(p7);
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free_all(out);
EXIT(ret);
OPENSSL_EXIT(ret);
}
+2 -1
View File
@@ -236,7 +236,8 @@ int MAIN(int argc, char **argv)
if(passout) p8pass = passout;
else {
p8pass = pass;
EVP_read_pw_string(pass, 50, "Enter Encryption Password:", 1);
if (EVP_read_pw_string(pass, 50, "Enter Encryption Password:", 1))
return (1);
}
app_RAND_load_file(NULL, bio_err, 0);
if (!(p8 = PKCS8_encrypt(pbe_nid, cipher,
+1 -1
View File
@@ -144,5 +144,5 @@ err:
ERR_print_errors(bio_err);
if (out)
BIO_free_all(out);
EXIT(ret);
OPENSSL_EXIT(ret);
}
Loaded 100 of 464 files, more files were not shown because too many files have changed in this diff. Show more