From d8cb4150ee4fecaa41a7fca2ca2fafa598ca34f5 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Thu, 8 Dec 2005 21:44:51 +0000 Subject: [PATCH] Fix Win32 built to work with new crypto code. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2654 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/kes-1.39 | 1 + bacula/src/lib/crypto.c | 136 +++++------ bacula/src/lib/protos.h | 4 +- bacula/src/lib/smartall.c | 254 ++++++++++----------- bacula/src/win32/baculafd/baculafd.mak | 45 ++-- bacula/src/win32/console/console.mak | 11 + bacula/src/win32/filed/chksum.cpp | 1 - bacula/src/win32/lib/crypto.cpp | 1 + bacula/src/win32/wx-console/filelist | 1 + bacula/src/win32/wx-console/wx-console.mak | 25 ++ 10 files changed, 259 insertions(+), 220 deletions(-) delete mode 100644 bacula/src/win32/filed/chksum.cpp create mode 100644 bacula/src/win32/lib/crypto.cpp diff --git a/bacula/kes-1.39 b/bacula/kes-1.39 index 1a4bca88f1..f8792fe4b8 100644 --- a/bacula/kes-1.39 +++ b/bacula/kes-1.39 @@ -5,6 +5,7 @@ General: Changes to 1.39.2: 08Dec05 +- Fix Win32 built to work with new crypto code. - Apply patch supplied by user (slightly modified) to fix correct detection of holes in block devices and FIFOs. Bug # 506. diff --git a/bacula/src/lib/crypto.c b/bacula/src/lib/crypto.c index d2a2d4a4d3..9860a4b1a9 100644 --- a/bacula/src/lib/crypto.c +++ b/bacula/src/lib/crypto.c @@ -60,21 +60,21 @@ * 2.4 - RecipientInfo * * BaculaCrypto { iso(1) identified-organization(3) usdod(6) - * internet(1) private(4) enterprises(1) three-rings(22054) - * external(500) bacula(2) published(1) bacula-encryption(1) - * asn1-modules(1) bacula-crypto(1) } + * internet(1) private(4) enterprises(1) three-rings(22054) + * external(500) bacula(2) published(1) bacula-encryption(1) + * asn1-modules(1) bacula-crypto(1) } * * DEFINITIONS AUTOMATIC TAGS ::= * BEGIN * * SignatureData ::= SEQUENCE { - * version Version DEFAULT v0, + * version Version DEFAULT v0, * signerInfo SignerInfo } * * CryptoData ::= SEQUENCE { - * version Version DEFAULT v0, + * version Version DEFAULT v0, * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier - * recipientInfo RecipientInfo + * recipientInfo RecipientInfo * } * * SignerInfo ::= SET OF SignerInfo @@ -83,17 +83,17 @@ * Version ::= INTEGER { v0(0) } * * SignerInfo ::= SEQUENCE { - * version Version, + * version Version, * subjectKeyIdentifier SubjectKeyIdentifier, - * digestAlgorithm DigestAlgorithmIdentifier, + * digestAlgorithm DigestAlgorithmIdentifier, * signatureAlgorithm SignatureAlgorithmIdentifier, - * signature SignatureValue } + * signature SignatureValue } * * RecipientInfo ::= SEQUENCE { - * version Version + * version Version * subjectKeyIdentifier SubjectKeyIdentifier * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier - * encryptedKey EncryptedKey + * encryptedKey EncryptedKey * } * * SubjectKeyIdentifier ::= OCTET STRING @@ -270,7 +270,7 @@ typedef struct PEM_CB_Context { /* * Extract subjectKeyIdentifier from x509 certificate. * Returns: On success, an ASN1_OCTET_STRING that must be freed via M_ASN1_OCTET_STRING_free(). - * NULL on failure. + * NULL on failure. */ static ASN1_OCTET_STRING *openssl_cert_keyid(X509 *cert){ X509_EXTENSION *ext; @@ -307,7 +307,7 @@ static ASN1_OCTET_STRING *openssl_cert_keyid(X509 *cert){ /* Decode ASN1 item in data */ keyid = (ASN1_OCTET_STRING *) ASN1_item_d2i(NULL, &ext_value_data, ext->value->length, - ASN1_ITEM_ptr(method->it)); + ASN1_ITEM_ptr(method->it)); } else { /* Old style ASN1 */ @@ -325,7 +325,7 @@ static ASN1_OCTET_STRING *openssl_cert_keyid(X509 *cert){ /* * Create a new keypair object. * Returns: A pointer to a X509 KEYPAIR object on success. - * NULL on failure. + * NULL on failure. */ X509_KEYPAIR *crypto_keypair_new (void) { X509_KEYPAIR *keypair; @@ -347,7 +347,7 @@ X509_KEYPAIR *crypto_keypair_new (void) { /* * Load a public key from a PEM-encoded x509 certificate. * Returns: true on success - * false on failure + * false on failure */ int crypto_keypair_load_cert (X509_KEYPAIR *keypair, const char *file) { @@ -405,11 +405,11 @@ static int crypto_pem_callback_dispatch (char *buf, int size, int rwflag, void * /* * Load a PEM-encoded private key. * Returns: true on success - * false on failure + * false on failure */ int crypto_keypair_load_key (X509_KEYPAIR *keypair, const char *file, - CRYPTO_PEM_PASSWD_CB *pem_callback, - const void *pem_userdata) + CRYPTO_PEM_PASSWD_CB *pem_callback, + const void *pem_userdata) { BIO *bio; PEM_CB_CONTEXT ctx; @@ -459,7 +459,7 @@ void crypto_keypair_free (X509_KEYPAIR *keypair) /* * Create a new message digest context of the specified type * Returns: A pointer to a DIGEST object on success. - * NULL on failure. + * NULL on failure. */ DIGEST *crypto_digest_new (crypto_digest_t type) { @@ -510,9 +510,9 @@ err: /* * Hash length bytes of data into the provided digest context. * Returns: true on success - * false on failure + * false on failure */ -int crypto_digest_update (DIGEST *digest, const void *data, size_t length) { +bool crypto_digest_update (DIGEST *digest, const void *data, size_t length) { if (EVP_DigestUpdate(&digest->ctx, data, length) == 0) { return true; } else { @@ -525,9 +525,9 @@ int crypto_digest_update (DIGEST *digest, const void *data, size_t length) { * in length. The result size can be determined with crypto_digest_size(). * * Returns: true on success - * false on failure + * false on failure */ -int crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) { +bool crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) { if (!EVP_DigestFinal(&digest->ctx, (unsigned char *) dest, length)) { return false; } else { @@ -547,7 +547,7 @@ void crypto_digest_free (DIGEST *digest) /* * Create a new message signature context. * Returns: A pointer to a SIGNATURE object on success. - * NULL on failure. + * NULL on failure. */ SIGNATURE *crypto_sign_new (void) { @@ -576,7 +576,7 @@ SIGNATURE *crypto_sign_new (void) * For a given public key, find the associated SignatureInfo record * and create a digest context for signature validation * Returns: CRYPTO_ERROR_NONE on success, with the newly allocated DIGEST in digest. - * A crypto_error_t value on failure. + * A crypto_error_t value on failure. */ crypto_error_t crypto_sign_get_digest(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST **digest) { @@ -589,33 +589,33 @@ crypto_error_t crypto_sign_get_digest(SIGNATURE *sig, X509_KEYPAIR *keypair, DIG for (i = 0; i < sk_SignerInfo_num(signers); i++) { si = sk_SignerInfo_value(signers, i); if (M_ASN1_OCTET_STRING_cmp(keypair->keyid, si->subjectKeyIdentifier) == 0) { - /* Get the digest algorithm and allocate a digest context */ - switch (OBJ_obj2nid(si->digestAlgorithm)) { - case NID_md5: - *digest = crypto_digest_new(CRYPTO_DIGEST_MD5); - break; - case NID_sha1: - *digest = crypto_digest_new(CRYPTO_DIGEST_SHA1); - break; + /* Get the digest algorithm and allocate a digest context */ + switch (OBJ_obj2nid(si->digestAlgorithm)) { + case NID_md5: + *digest = crypto_digest_new(CRYPTO_DIGEST_MD5); + break; + case NID_sha1: + *digest = crypto_digest_new(CRYPTO_DIGEST_SHA1); + break; #ifdef HAVE_SHA2 - case NID_sha256: - *digest = crypto_digest_new(CRYPTO_DIGEST_SHA256); - break; - case NID_sha512: - *digest = crypto_digest_new(CRYPTO_DIGEST_SHA512); - break; + case NID_sha256: + *digest = crypto_digest_new(CRYPTO_DIGEST_SHA256); + break; + case NID_sha512: + *digest = crypto_digest_new(CRYPTO_DIGEST_SHA512); + break; #endif - default: - *digest = NULL; - return CRYPTO_ERROR_INVALID_DIGEST; - } + default: + *digest = NULL; + return CRYPTO_ERROR_INVALID_DIGEST; + } /* Shouldn't happen */ - if (*digest == NULL) { - return CRYPTO_ERROR_INVALID_DIGEST; - } else { - return CRYPTO_ERROR_NONE; - } + if (*digest == NULL) { + return CRYPTO_ERROR_INVALID_DIGEST; + } else { + return CRYPTO_ERROR_NONE; + } } } @@ -625,7 +625,7 @@ crypto_error_t crypto_sign_get_digest(SIGNATURE *sig, X509_KEYPAIR *keypair, DIG /* * For a given signature, public key, and digest, verify the SIGNATURE. * Returns: CRYPTO_ERROR_NONE on success. - * A crypto_error_t value on failure. + * A crypto_error_t value on failure. */ crypto_error_t crypto_sign_verify(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST *digest) { @@ -645,20 +645,20 @@ crypto_error_t crypto_sign_verify(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST for (i = 0; i < sk_SignerInfo_num(signers); i++) { si = sk_SignerInfo_value(signers, i); if (M_ASN1_OCTET_STRING_cmp(keypair->keyid, si->subjectKeyIdentifier) == 0) { - /* Extract the signature data */ - sigLen = M_ASN1_STRING_length(si->signature); - sigData = M_ASN1_STRING_data(si->signature); - - ok = EVP_VerifyFinal(&digest->ctx, sigData, sigLen, keypair->pubkey); - if (ok >= 1) { - return CRYPTO_ERROR_NONE; - } else if (ok == 0) { - return CRYPTO_ERROR_BAD_SIGNATURE; - } else if (ok < 0) { + /* Extract the signature data */ + sigLen = M_ASN1_STRING_length(si->signature); + sigData = M_ASN1_STRING_data(si->signature); + + ok = EVP_VerifyFinal(&digest->ctx, sigData, sigLen, keypair->pubkey); + if (ok >= 1) { + return CRYPTO_ERROR_NONE; + } else if (ok == 0) { + return CRYPTO_ERROR_BAD_SIGNATURE; + } else if (ok < 0) { /* Shouldn't happen */ openssl_post_errors(M_ERROR, _("OpenSSL error occured")); - return CRYPTO_ERROR_INTERNAL; - } + return CRYPTO_ERROR_INTERNAL; + } } } @@ -670,7 +670,7 @@ crypto_error_t crypto_sign_verify(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST /* * Add a new signer * Returns: true on success - * false on failure + * false on failure */ int crypto_sign_add_signer(SIGNATURE *sig, DIGEST *digest, X509_KEYPAIR *keypair) { @@ -758,7 +758,7 @@ err: * space for the output. * * Returns: true on success, stores the encoded data in dest, and the size in length. - * false on failure. + * false on failure. */ int crypto_sign_encode(SIGNATURE *sig, void *dest, size_t *length) { @@ -776,7 +776,7 @@ int crypto_sign_encode(SIGNATURE *sig, void *dest, size_t *length) * size of sigData. * * Returns: SIGNATURE instance on success. - * NULL on failure. + * NULL on failure. */ @@ -819,7 +819,7 @@ void crypto_sign_free(SIGNATURE *sig) * Perform global initialization of OpenSSL * This function is not thread safe. * Returns: 0 on success - * errno on failure + * errno on failure */ int init_crypto (void) { @@ -849,7 +849,7 @@ int init_crypto (void) * All cryptographic operations must be completed before calling this function. * This function is not thread safe. * Returns: 0 on success - * errno on failure + * errno on failure */ int cleanup_crypto (void) { @@ -925,7 +925,7 @@ DIGEST *crypto_digest_new (crypto_digest_t type) return (digest); } -int crypto_digest_update (DIGEST *digest, const void *data, size_t length) { +bool crypto_digest_update (DIGEST *digest, const void *data, size_t length) { switch (digest->type) { case CRYPTO_DIGEST_MD5: /* Doesn't return anything ... */ @@ -945,7 +945,7 @@ int crypto_digest_update (DIGEST *digest, const void *data, size_t length) { } } -int crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) { +bool crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) { switch (digest->type) { case CRYPTO_DIGEST_MD5: diff --git a/bacula/src/lib/protos.h b/bacula/src/lib/protos.h index c03a52bb88..130189729f 100644 --- a/bacula/src/lib/protos.h +++ b/bacula/src/lib/protos.h @@ -117,8 +117,8 @@ uint32_t bcrc32(uint8_t *buf, int len); int init_crypto (void); int cleanup_crypto (void); DIGEST * crypto_digest_new (crypto_digest_t type); -int crypto_digest_update (DIGEST *digest, const void *data, size_t length); -int crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length); +bool crypto_digest_update (DIGEST *digest, const void *data, size_t length); +bool crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length); void crypto_digest_free (DIGEST *digest); SIGNATURE * crypto_sign_new (void); crypto_error_t crypto_sign_get_digest (SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST **digest); diff --git a/bacula/src/lib/smartall.c b/bacula/src/lib/smartall.c index 32f5fac221..138522d20b 100644 --- a/bacula/src/lib/smartall.c +++ b/bacula/src/lib/smartall.c @@ -1,20 +1,20 @@ /* - S M A R T A L L O C - Smart Memory Allocator + S M A R T A L L O C + Smart Memory Allocator - Evolved over several years, starting with the initial - SMARTALLOC code for AutoSketch in 1986, guided by the Blind - Watchbreaker, John Walker. Isolated in this general-purpose - form in September of 1989. Updated with be more POSIX - compliant and to include Web-friendly HTML documentation in - October of 1998 by the same culprit. For additional - information and the current version visit the Web page: + Evolved over several years, starting with the initial + SMARTALLOC code for AutoSketch in 1986, guided by the Blind + Watchbreaker, John Walker. Isolated in this general-purpose + form in September of 1989. Updated with be more POSIX + compliant and to include Web-friendly HTML documentation in + October of 1998 by the same culprit. For additional + information and the current version visit the Web page: - http://www.fourmilab.ch/smartall/ + http://www.fourmilab.ch/smartall/ - Version $Id$ + Version $Id$ */ @@ -63,7 +63,7 @@ uint32_t sm_buffers = 0; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -extern char my_name[]; /* daemon name */ +extern char my_name[]; /* daemon name */ typedef unsigned short sm_ushort; @@ -75,10 +75,10 @@ typedef unsigned short sm_ushort; /* Memory allocation control structures and storage. */ struct abufhead { - struct b_queue abq; /* Links on allocated queue */ - unsigned ablen; /* Buffer length in bytes */ + struct b_queue abq; /* Links on allocated queue */ + unsigned ablen; /* Buffer length in bytes */ const char *abfname; /* File name pointer */ - sm_ushort ablineno; /* Line number of allocation */ + sm_ushort ablineno; /* Line number of allocation */ }; static struct b_queue abqueue = { /* Allocated buffer queue */ @@ -86,13 +86,13 @@ static struct b_queue abqueue = { /* Allocated buffer queue */ }; -static bool bufimode = false; /* Buffers not tracked when True */ +static bool bufimode = false; /* Buffers not tracked when True */ #define HEAD_SIZE BALIGN(sizeof(struct abufhead)) /* SMALLOC -- Allocate buffer, enqueing on the orphaned buffer - tracking list. */ + tracking list. */ static void *smalloc(const char *fname, int lineno, unsigned int nbytes) { @@ -118,14 +118,14 @@ static void *smalloc(const char *fname, int lineno, unsigned int nbytes) head->abfname = bufimode ? NULL : fname; head->ablineno = (sm_ushort) lineno; /* Emplace end-clobber detector at end of buffer */ - buf[nbytes - 1] = (((long) buf) & 0xFF) ^ 0xC5; + buf[nbytes - 1] = (uint8_t)((((long) buf) & 0xFF) ^ 0xC5); buf += HEAD_SIZE; /* Increment to user data start */ if (++sm_buffers > sm_max_buffers) { - sm_max_buffers = sm_buffers; + sm_max_buffers = sm_buffers; } sm_bytes += nbytes; if (sm_bytes > sm_max_bytes) { - sm_max_bytes = sm_bytes; + sm_max_bytes = sm_bytes; } V(mutex); } else { @@ -136,7 +136,7 @@ static void *smalloc(const char *fname, int lineno, unsigned int nbytes) } /* SM_NEW_OWNER -- Update the File and line number for a buffer - This is to accomodate mem_pool. */ + This is to accomodate mem_pool. */ void sm_new_owner(const char *fname, int lineno, char *buf) { @@ -147,9 +147,9 @@ void sm_new_owner(const char *fname, int lineno, char *buf) } /* SM_FREE -- Update free pool availability. FREE is never called - except through this interface or by actuallyfree(). - free(x) is defined to generate a call to this - routine. */ + except through this interface or by actuallyfree(). + free(x) is defined to generate a call to this + routine. */ void sm_free(const char *file, int line, void *fp) { @@ -166,8 +166,8 @@ void sm_free(const char *file, int line, void *fp) P(mutex); Dmsg4(1150, "sm_free %d at %x from %s:%d\n", - head->ablen, fp, - head->abfname, head->ablineno); + head->ablen, fp, + head->abfname, head->ablineno); /* The following assertions will catch virtually every release of an address which isn't an allocated buffer. */ @@ -180,9 +180,9 @@ void sm_free(const char *file, int line, void *fp) Emsg2(M_ABORT, 0, _("qp->qprev->qnext != qp called from %s:%d\n"), file, line); } - /* The following assertion detects storing off the end of the + /* The following assertion detects storing off the end of the allocated space in the buffer by comparing the end of buffer - checksum with the address of the buffer. */ + checksum with the address of the buffer. */ if (((unsigned char *)cp)[head->ablen - 1] != ((((long) cp) & 0xFF) ^ 0xC5)) { V(mutex); @@ -194,7 +194,7 @@ void sm_free(const char *file, int line, void *fp) qdchain(qp); V(mutex); - /* Now we wipe the contents of the just-released buffer with + /* Now we wipe the contents of the just-released buffer with "designer garbage" (Duff Kurland's phrase) of alternating bits. This is intended to ruin the day for any miscreant who attempts to access data through a pointer into storage that's @@ -206,7 +206,7 @@ void sm_free(const char *file, int line, void *fp) } /* SM_MALLOC -- Allocate buffer. NULL is returned if no memory - was available. */ + was available. */ void *sm_malloc(const char *fname, int lineno, unsigned int nbytes) { @@ -215,7 +215,7 @@ void *sm_malloc(const char *fname, int lineno, unsigned int nbytes) if ((buf = smalloc(fname, lineno, nbytes)) != NULL) { /* To catch sloppy code that assumes buffers obtained from - malloc() are zeroed, we preset the buffer contents to + malloc() are zeroed, we preset the buffer contents to "designer garbage" consisting of alternating bits. */ memset(buf, 0x55, (int) nbytes); @@ -228,7 +228,7 @@ void *sm_malloc(const char *fname, int lineno, unsigned int nbytes) /* SM_CALLOC -- Allocate an array and clear it to zero. */ void *sm_calloc(const char *fname, int lineno, - unsigned int nelem, unsigned int elsize) + unsigned int nelem, unsigned int elsize) { void *buf; @@ -240,14 +240,14 @@ void *sm_calloc(const char *fname, int lineno, return buf; } -/* SM_REALLOC -- Adjust the size of a previously allocated buffer. +/* SM_REALLOC -- Adjust the size of a previously allocated buffer. Note that the trick of "resurrecting" a previously - freed buffer with realloc() is NOT supported by this - function. Further, because of the need to maintain - our control storage, SM_REALLOC must always allocate - a new block and copy the data in the old block. - This may result in programs which make heavy use of - realloc() running much slower than normally. */ + freed buffer with realloc() is NOT supported by this + function. Further, because of the need to maintain + our control storage, SM_REALLOC must always allocate + a new block and copy the data in the old block. + This may result in programs which make heavy use of + realloc() running much slower than normally. */ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) { @@ -260,7 +260,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) e_msg(fname, lineno, M_ABORT, 0, _("sm_realloc size: %d\n"), size); } - /* If the old block pointer is NULL, treat realloc() as a + /* If the old block pointer is NULL, treat realloc() as a malloc(). SVID is silent on this, but many C libraries permit this. */ @@ -280,7 +280,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) /* Sizes differ. Allocate a new buffer of the requested size. If we can't obtain such a buffer, act as defined in SVID: - return NULL from realloc() and leave the buffer in PTR + return NULL from realloc() and leave the buffer in PTR intact. */ sm_buffers--; @@ -291,7 +291,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) /* If the new buffer is larger than the old, fill the balance of it with "designer garbage". */ if (size > osize) { - memset(((char *) buf) + osize, 0x55, (int) (size - osize)); + memset(((char *) buf) + osize, 0x55, (int) (size - osize)); } /* All done. Free and dechain the original buffer. */ @@ -302,20 +302,20 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) return buf; } -/* ACTUALLYMALLOC -- Call the system malloc() function to obtain - storage which will eventually be released - by system or library routines not compiled - using SMARTALLOC. */ +/* ACTUALLYMALLOC -- Call the system malloc() function to obtain + storage which will eventually be released + by system or library routines not compiled + using SMARTALLOC. */ void *actuallymalloc(unsigned int size) { return malloc(size); } -/* ACTUALLYCALLOC -- Call the system calloc() function to obtain - storage which will eventually be released - by system or library routines not compiled - using SMARTALLOC. */ +/* ACTUALLYCALLOC -- Call the system calloc() function to obtain + storage which will eventually be released + by system or library routines not compiled + using SMARTALLOC. */ void *actuallycalloc(unsigned int nelem, unsigned int elsize) { @@ -323,9 +323,9 @@ void *actuallycalloc(unsigned int nelem, unsigned int elsize) } /* ACTUALLYREALLOC -- Call the system realloc() function to obtain - storage which will eventually be released - by system or library routines not compiled - using SMARTALLOC. */ + storage which will eventually be released + by system or library routines not compiled + using SMARTALLOC. */ void *actuallyrealloc(void *ptr, unsigned int size) { @@ -334,7 +334,7 @@ void *actuallyrealloc(void *ptr, unsigned int size) } /* ACTUALLYFREE -- Interface to system free() function to release - buffers allocated by low-level routines. */ + buffers allocated by low-level routines. */ void actuallyfree(void *cp) { @@ -342,7 +342,7 @@ void actuallyfree(void *cp) } /* SM_DUMP -- Print orphaned buffers (and dump them if BUFDUMP is - * True). + * True). * N.B. DO NOT USE any Bacula print routines (Dmsg, Jmsg, Emsg, ...) * as they have all been shut down at this point. */ @@ -357,45 +357,45 @@ void sm_dump(bool bufdump) while (ap != (struct abufhead *) &abqueue) { if ((ap == NULL) || - (ap->abq.qnext->qprev != (struct b_queue *) ap) || - (ap->abq.qprev->qnext != (struct b_queue *) ap)) { - fprintf(stderr, _( + (ap->abq.qnext->qprev != (struct b_queue *) ap) || + (ap->abq.qprev->qnext != (struct b_queue *) ap)) { + fprintf(stderr, _( "\nOrphaned buffers exist. Dump terminated following\n" " discovery of bad links in chain of orphaned buffers.\n" " Buffer address with bad links: %lx\n"), (long) ap); - break; + break; } if (ap->abfname != NULL) { - unsigned memsize = ap->ablen - (HEAD_SIZE + 1); - char errmsg[500]; + unsigned memsize = ap->ablen - (HEAD_SIZE + 1); + char errmsg[500]; - bsnprintf(errmsg, sizeof(errmsg), + bsnprintf(errmsg, sizeof(errmsg), _("Orphaned buffer: %6u bytes allocated at line %d of %s %s\n"), - memsize, ap->ablineno, my_name, ap->abfname - ); + memsize, ap->ablineno, my_name, ap->abfname + ); fprintf(stderr, "%s", errmsg); - if (bufdump) { - char buf[20]; - unsigned llen = 0; - char *cp = ((char *) ap) + HEAD_SIZE; - - errmsg[0] = EOS; - while (memsize) { - if (llen >= 16) { + if (bufdump) { + char buf[20]; + unsigned llen = 0; + char *cp = ((char *) ap) + HEAD_SIZE; + + errmsg[0] = EOS; + while (memsize) { + if (llen >= 16) { bstrncat(errmsg, "\n", sizeof(errmsg)); - llen = 0; + llen = 0; fprintf(stderr, "%s", errmsg); - errmsg[0] = EOS; - } + errmsg[0] = EOS; + } bsnprintf(buf, sizeof(buf), " %02X", - (*cp++) & 0xFF); - bstrncat(errmsg, buf, sizeof(errmsg)); - llen++; - memsize--; - } + (*cp++) & 0xFF); + bstrncat(errmsg, buf, sizeof(errmsg)); + llen++; + memsize--; + } fprintf(stderr, "%s\n", errmsg); - } + } } ap = (struct abufhead *) ap->abq.qnext; } @@ -406,10 +406,10 @@ void sm_dump(bool bufdump) /* SM_CHECK -- Check the buffers and dump if any damage exists. */ void sm_check(const char *fname, int lineno, bool bufdump) { - if (!sm_check_rtn(fname, lineno, bufdump)) { + if (!sm_check_rtn(fname, lineno, bufdump)) { Emsg2(M_ABORT, 0, _("Damaged buffer found. Called from %s:%d\n"), - fname, lineno); - } + fname, lineno); + } } #undef sm_check_rtn @@ -424,66 +424,66 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump) while (ap != (struct abufhead *) &abqueue) { bad = 0; if ((ap == NULL) || - (ap->abq.qnext->qprev != (struct b_queue *) ap)) { - bad = 0x1; + (ap->abq.qnext->qprev != (struct b_queue *) ap)) { + bad = 0x1; } if (ap->abq.qprev->qnext != (struct b_queue *) ap) { - bad |= 0x2; + bad |= 0x2; } if (((unsigned char *) ap)[((struct abufhead *) ap)->ablen - 1] != - ((((long) ap) & 0xFF) ^ 0xC5)) { - bad |= 0x4; + ((((long) ap) & 0xFF) ^ 0xC5)) { + bad |= 0x4; } badbuf |= bad; if (bad) { - fprintf(stderr, + fprintf(stderr, _("\nDamaged buffers found at %s:%d\n"), fname, lineno); - if (bad & 0x1) { + if (bad & 0x1) { fprintf(stderr, _(" discovery of bad prev link.\n")); - } - if (bad & 0x2) { + } + if (bad & 0x2) { fprintf(stderr, _(" discovery of bad next link.\n")); - } - if (bad & 0x4) { + } + if (bad & 0x4) { fprintf(stderr, _(" discovery of data overrun.\n")); - } + } fprintf(stderr, _(" Buffer address: %lx\n"), (long) ap); - if (ap->abfname != NULL) { - unsigned memsize = ap->ablen - (HEAD_SIZE + 1); - char errmsg[80]; + if (ap->abfname != NULL) { + unsigned memsize = ap->ablen - (HEAD_SIZE + 1); + char errmsg[80]; - fprintf(stderr, + fprintf(stderr, _("Damaged buffer: %6u bytes allocated at line %d of %s %s\n"), - memsize, ap->ablineno, my_name, ap->abfname - ); - if (bufdump) { - unsigned llen = 0; - char *cp = ((char *) ap) + HEAD_SIZE; - - errmsg[0] = EOS; - while (memsize) { - if (llen >= 16) { + memsize, ap->ablineno, my_name, ap->abfname + ); + if (bufdump) { + unsigned llen = 0; + char *cp = ((char *) ap) + HEAD_SIZE; + + errmsg[0] = EOS; + while (memsize) { + if (llen >= 16) { strcat(errmsg, "\n"); - llen = 0; + llen = 0; fprintf(stderr, "%s", errmsg); - errmsg[0] = EOS; - } - if (*cp < 0x20) { + errmsg[0] = EOS; + } + if (*cp < 0x20) { sprintf(errmsg + strlen(errmsg), " %02X", - (*cp++) & 0xFF); - } else { + (*cp++) & 0xFF); + } else { sprintf(errmsg + strlen(errmsg), " %c ", - (*cp++) & 0xFF); - } - llen++; - memsize--; - } + (*cp++) & 0xFF); + } + llen++; + memsize--; + } fprintf(stderr, "%s\n", errmsg); - } - } + } + } } ap = (struct abufhead *) ap->abq.qnext; } @@ -493,11 +493,11 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump) /* SM_STATIC -- Orphaned buffer detection can be disabled (for such - items as buffers allocated during initialisation) by - calling sm_static(1). Normal orphaned buffer - detection can be re-enabled with sm_static(0). Note - that all the other safeguards still apply to buffers - allocated when sm_static(1) mode is in effect. */ + items as buffers allocated during initialisation) by + calling sm_static(1). Normal orphaned buffer + detection can be re-enabled with sm_static(0). Note + that all the other safeguards still apply to buffers + allocated when sm_static(1) mode is in effect. */ void sm_static(int mode) { diff --git a/bacula/src/win32/baculafd/baculafd.mak b/bacula/src/win32/baculafd/baculafd.mak index 7afb9dca66..df2c8f7f8d 100644 --- a/bacula/src/win32/baculafd/baculafd.mak +++ b/bacula/src/win32/baculafd/baculafd.mak @@ -57,11 +57,11 @@ CLEAN : -@erase "$(INTDIR)\bsys.obj" -@erase "$(INTDIR)\btime.obj" -@erase "$(INTDIR)\btimers.obj" - -@erase "$(INTDIR)\chksum.obj" -@erase "$(INTDIR)\compat.obj" -@erase "$(INTDIR)\cram-md5.obj" -@erase "$(INTDIR)\crc32.obj" -@erase "$(INTDIR)\create_file.obj" + -@erase "$(INTDIR)\crypto.obj" -@erase "$(INTDIR)\daemon.obj" -@erase "$(INTDIR)\dlist.obj" -@erase "$(INTDIR)\edit.obj" @@ -154,11 +154,11 @@ LINK32_OBJS= \ "$(INTDIR)\bsys.obj" \ "$(INTDIR)\btime.obj" \ "$(INTDIR)\btimers.obj" \ - "$(INTDIR)\chksum.obj" \ "$(INTDIR)\compat.obj" \ "$(INTDIR)\cram-md5.obj" \ "$(INTDIR)\crc32.obj" \ "$(INTDIR)\create_file.obj" \ + "$(INTDIR)\crypto.obj" \ "$(INTDIR)\daemon.obj" \ "$(INTDIR)\dlist.obj" \ "$(INTDIR)\edit.obj" \ @@ -271,8 +271,6 @@ CLEAN : -@erase "$(INTDIR)\btime.sbr" -@erase "$(INTDIR)\btimers.obj" -@erase "$(INTDIR)\btimers.sbr" - -@erase "$(INTDIR)\chksum.obj" - -@erase "$(INTDIR)\chksum.sbr" -@erase "$(INTDIR)\compat.obj" -@erase "$(INTDIR)\compat.sbr" -@erase "$(INTDIR)\cram-md5.obj" @@ -281,6 +279,8 @@ CLEAN : -@erase "$(INTDIR)\crc32.sbr" -@erase "$(INTDIR)\create_file.obj" -@erase "$(INTDIR)\create_file.sbr" + -@erase "$(INTDIR)\crypto.obj" + -@erase "$(INTDIR)\crypto.sbr" -@erase "$(INTDIR)\daemon.obj" -@erase "$(INTDIR)\daemon.sbr" -@erase "$(INTDIR)\dlist.obj" @@ -430,11 +430,11 @@ BSC32_SBRS= \ "$(INTDIR)\bsys.sbr" \ "$(INTDIR)\btime.sbr" \ "$(INTDIR)\btimers.sbr" \ - "$(INTDIR)\chksum.sbr" \ "$(INTDIR)\compat.sbr" \ "$(INTDIR)\cram-md5.sbr" \ "$(INTDIR)\crc32.sbr" \ "$(INTDIR)\create_file.sbr" \ + "$(INTDIR)\crypto.sbr" \ "$(INTDIR)\daemon.sbr" \ "$(INTDIR)\dlist.sbr" \ "$(INTDIR)\edit.sbr" \ @@ -520,11 +520,11 @@ LINK32_OBJS= \ "$(INTDIR)\bsys.obj" \ "$(INTDIR)\btime.obj" \ "$(INTDIR)\btimers.obj" \ - "$(INTDIR)\chksum.obj" \ "$(INTDIR)\compat.obj" \ "$(INTDIR)\cram-md5.obj" \ "$(INTDIR)\crc32.obj" \ "$(INTDIR)\create_file.obj" \ + "$(INTDIR)\crypto.obj" \ "$(INTDIR)\daemon.obj" \ "$(INTDIR)\dlist.obj" \ "$(INTDIR)\edit.obj" \ @@ -944,97 +944,98 @@ SOURCE=..\lib\btimers.cpp !ENDIF -SOURCE=..\filed\chksum.cpp +SOURCE=..\compat\compat.cpp !IF "$(CFG)" == "baculafd - Win32 Release" -"$(INTDIR)\chksum.obj" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\compat.obj" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ELSEIF "$(CFG)" == "baculafd - Win32 Debug" -"$(INTDIR)\chksum.obj" "$(INTDIR)\chksum.sbr" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\compat.obj" "$(INTDIR)\compat.sbr" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ENDIF - -SOURCE=..\compat\compat.cpp +SOURCE="..\lib\cram-md5.cpp" !IF "$(CFG)" == "baculafd - Win32 Release" -"$(INTDIR)\compat.obj" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\cram-md5.obj" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ELSEIF "$(CFG)" == "baculafd - Win32 Debug" -"$(INTDIR)\compat.obj" "$(INTDIR)\compat.sbr" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\cram-md5.obj" "$(INTDIR)\cram-md5.sbr" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ENDIF -SOURCE="..\lib\cram-md5.cpp" +SOURCE=..\lib\crc32.cpp !IF "$(CFG)" == "baculafd - Win32 Release" -"$(INTDIR)\cram-md5.obj" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\crc32.obj" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ELSEIF "$(CFG)" == "baculafd - Win32 Debug" -"$(INTDIR)\cram-md5.obj" "$(INTDIR)\cram-md5.sbr" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\crc32.obj" "$(INTDIR)\crc32.sbr" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ENDIF -SOURCE=..\lib\crc32.cpp +SOURCE=..\findlib\create_file.cpp !IF "$(CFG)" == "baculafd - Win32 Release" -"$(INTDIR)\crc32.obj" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\create_file.obj" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ELSEIF "$(CFG)" == "baculafd - Win32 Debug" -"$(INTDIR)\crc32.obj" "$(INTDIR)\crc32.sbr" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\create_file.obj" "$(INTDIR)\create_file.sbr" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ENDIF -SOURCE=..\findlib\create_file.cpp + +SOURCE=..\lib\crypto.cpp !IF "$(CFG)" == "baculafd - Win32 Release" -"$(INTDIR)\create_file.obj" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\crypto.obj" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ELSEIF "$(CFG)" == "baculafd - Win32 Debug" -"$(INTDIR)\create_file.obj" "$(INTDIR)\create_file.sbr" : $(SOURCE) "$(INTDIR)" +"$(INTDIR)\crypto.obj" "$(INTDIR)\crypto.sbr" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) !ENDIF + SOURCE=..\lib\daemon.cpp !IF "$(CFG)" == "baculafd - Win32 Release" diff --git a/bacula/src/win32/console/console.mak b/bacula/src/win32/console/console.mak index 7d0c98213b..4a117ec1f9 100644 --- a/bacula/src/win32/console/console.mak +++ b/bacula/src/win32/console/console.mak @@ -54,6 +54,7 @@ CLEAN : -@erase "$(INTDIR)\console_conf.obj" -@erase "$(INTDIR)\cram-md5.obj" -@erase "$(INTDIR)\crc32.obj" + -@erase "$(INTDIR)\crypto.obj" -@erase "$(INTDIR)\dlist.obj" -@erase "$(INTDIR)\edit.obj" -@erase "$(INTDIR)\getopt.obj" @@ -106,6 +107,7 @@ LINK32_OBJS= \ "$(INTDIR)\console_conf.obj" \ "$(INTDIR)\cram-md5.obj" \ "$(INTDIR)\crc32.obj" \ + "$(INTDIR)\crypto.obj" \ "$(INTDIR)\dlist.obj" \ "$(INTDIR)\edit.obj" \ "$(INTDIR)\getopt.obj" \ @@ -163,6 +165,7 @@ CLEAN : -@erase "$(INTDIR)\console_conf.obj" -@erase "$(INTDIR)\cram-md5.obj" -@erase "$(INTDIR)\crc32.obj" + -@erase "$(INTDIR)\crypto.obj" -@erase "$(INTDIR)\dlist.obj" -@erase "$(INTDIR)\edit.obj" -@erase "$(INTDIR)\getopt.obj" @@ -216,6 +219,7 @@ LINK32_OBJS= \ "$(INTDIR)\console_conf.obj" \ "$(INTDIR)\cram-md5.obj" \ "$(INTDIR)\crc32.obj" \ + "$(INTDIR)\crypto.obj" \ "$(INTDIR)\dlist.obj" \ "$(INTDIR)\edit.obj" \ "$(INTDIR)\getopt.obj" \ @@ -366,6 +370,13 @@ SOURCE=..\lib\crc32.cpp $(CPP) $(CPP_PROJ) $(SOURCE) +SOURCE=..\lib\crypto.cpp + +"$(INTDIR)\crypto.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + + SOURCE=..\lib\dlist.cpp "$(INTDIR)\dlist.obj" : $(SOURCE) "$(INTDIR)" diff --git a/bacula/src/win32/filed/chksum.cpp b/bacula/src/win32/filed/chksum.cpp deleted file mode 100644 index de3fd34fb5..0000000000 --- a/bacula/src/win32/filed/chksum.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "../../filed/chksum.c" diff --git a/bacula/src/win32/lib/crypto.cpp b/bacula/src/win32/lib/crypto.cpp new file mode 100644 index 0000000000..961ae75983 --- /dev/null +++ b/bacula/src/win32/lib/crypto.cpp @@ -0,0 +1 @@ +#include "../../lib/crypto.c" diff --git a/bacula/src/win32/wx-console/filelist b/bacula/src/win32/wx-console/filelist index f97c202452..9f044978ae 100644 --- a/bacula/src/win32/wx-console/filelist +++ b/bacula/src/win32/wx-console/filelist @@ -13,6 +13,7 @@ ..\lib\btime ..\lib\cram-md5 ..\lib\crc32 +..\lib\crypto ..\lib\daemon ..\lib\dlist ..\lib\edit diff --git a/bacula/src/win32/wx-console/wx-console.mak b/bacula/src/win32/wx-console/wx-console.mak index f5c116914e..863dd927c8 100644 --- a/bacula/src/win32/wx-console/wx-console.mak +++ b/bacula/src/win32/wx-console/wx-console.mak @@ -55,6 +55,7 @@ CLEAN : -@erase "$(INTDIR)\btime.obj" -@erase "$(INTDIR)\cram-md5.obj" -@erase "$(INTDIR)\crc32.obj" + -@erase "$(INTDIR)\crypto.obj" -@erase "$(INTDIR)\daemon.obj" -@erase "$(INTDIR)\dlist.obj" -@erase "$(INTDIR)\edit.obj" @@ -132,6 +133,7 @@ LINK32_OBJS= \ "$(INTDIR)\btime.obj" \ "$(INTDIR)\cram-md5.obj" \ "$(INTDIR)\crc32.obj" \ + "$(INTDIR)\crypto.obj" \ "$(INTDIR)\daemon.obj" \ "$(INTDIR)\dlist.obj" \ "$(INTDIR)\edit.obj" \ @@ -225,6 +227,8 @@ CLEAN : -@erase "$(INTDIR)\cram-md5.sbr" -@erase "$(INTDIR)\crc32.obj -@erase "$(INTDIR)\crc32.sbr" + -@erase "$(INTDIR)\crypto.obj + -@erase "$(INTDIR)\crypto.sbr" -@erase "$(INTDIR)\daemon.obj -@erase "$(INTDIR)\daemon.sbr" -@erase "$(INTDIR)\dlist.obj @@ -342,6 +346,7 @@ BSC32_SBRS= \ "$(INTDIR)\btime.sbr" \ "$(INTDIR)\cram-md5.sbr" \ "$(INTDIR)\crc32.sbr" \ + "$(INTDIR)\crypto.sbr" \ "$(INTDIR)\daemon.sbr" \ "$(INTDIR)\dlist.sbr" \ "$(INTDIR)\edit.sbr" \ @@ -414,6 +419,7 @@ LINK32_OBJS= \ "$(INTDIR)\btime.obj" \ "$(INTDIR)\cram-md5.obj" \ "$(INTDIR)\crc32.obj" \ + "$(INTDIR)\crypto.obj" \ "$(INTDIR)\daemon.obj" \ "$(INTDIR)\dlist.obj" \ "$(INTDIR)\edit.obj" \ @@ -797,6 +803,25 @@ SOURCE=..\lib\crc32.cpp !ENDIF +FILENAME=crypto +SOURCE=..\lib\crypto.cpp +!IF "$(CFG)" == "wx-console - Win32 Release" + + +"$(INTDIR)\$(FILENAME).obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "wx-console - Win32 Debug" + + +"$(INTDIR)\$(FILENAME).obj" "$(INTDIR)\$(FILENAME).sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + + FILENAME=daemon SOURCE=..\lib\daemon.cpp !IF "$(CFG)" == "wx-console - Win32 Release" -- 2.39.5