Clam 2638 0.103.12 and backports
| ... | ... |
@@ -15,7 +15,7 @@ string(TIMESTAMP TODAY "%Y%m%d") |
| 15 | 15 |
set(VERSION_SUFFIX "") |
| 16 | 16 |
|
| 17 | 17 |
project( ClamAV |
| 18 |
- VERSION "0.103.11" |
|
| 18 |
+ VERSION "0.103.12" |
|
| 19 | 19 |
DESCRIPTION "ClamAV open source email, web, and end-point anti-virus toolkit." ) |
| 20 | 20 |
|
| 21 | 21 |
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
| 22 | 22 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,6 @@ |
| 0 |
+FROM ubuntu:18.04 |
|
| 1 |
+ |
|
| 2 |
+RUN apt-get update && apt-get install -y \ |
|
| 3 |
+ gcc make automake autoconf m4 pkg-config libtool flex bison valgrind \ |
|
| 4 |
+ check libbz2-dev libcurl4-openssl-dev libjson-c-dev libmilter-dev \ |
|
| 5 |
+ libncurses5-dev libpcre2-dev libssl-dev libxml2-dev zlib1g-dev |
| ... | ... |
@@ -4,23 +4,32 @@ properties( |
| 4 | 4 |
parameters( |
| 5 | 5 |
[ |
| 6 | 6 |
string(name: 'VERSION', |
| 7 |
- defaultValue: '0.103.11', |
|
| 7 |
+ defaultValue: '0.103.12', |
|
| 8 | 8 |
description: 'ClamAV version string'), |
| 9 | 9 |
string(name: 'FRAMEWORK_BRANCH', |
| 10 | 10 |
defaultValue: '0.103', |
| 11 | 11 |
description: 'test-framework branch'), |
| 12 | 12 |
string(name: 'TESTS_BRANCH', |
| 13 | 13 |
defaultValue: '0.103', |
| 14 |
- description: 'tests branch'), |
|
| 14 |
+ description: 'tests branch for the package and regular tests'), |
|
| 15 | 15 |
string(name: 'TESTS_CUSTOM_BRANCH', |
| 16 | 16 |
defaultValue: '0.103', |
| 17 | 17 |
description: 'tests-custom branch'), |
| 18 | 18 |
string(name: 'TESTS_FUZZ_BRANCH', |
| 19 | 19 |
defaultValue: '0.103', |
| 20 | 20 |
description: 'tests-fuzz-regression branch'), |
| 21 |
+ string(name: 'BUILD_PIPELINES_PATH', |
|
| 22 |
+ defaultValue: 'ClamAV/build-pipelines', |
|
| 23 |
+ description: 'build-pipelines path for clamav in Jenkins'), |
|
| 24 |
+ string(name: 'TEST_PIPELINES_PATH', |
|
| 25 |
+ defaultValue: 'ClamAV/test-pipelines', |
|
| 26 |
+ description: 'test-pipelines path for clamav in Jenkins'), |
|
| 21 | 27 |
string(name: 'BUILD_PIPELINE', |
| 22 | 28 |
defaultValue: 'build-0.103', |
| 23 | 29 |
description: 'test-pipelines branch for build acceptance'), |
| 30 |
+ string(name: 'PACKAGE_PIPELINE', |
|
| 31 |
+ defaultValue: 'package-0.103', |
|
| 32 |
+ description: 'test-pipelines branch for package tests.'), |
|
| 24 | 33 |
string(name: 'REGULAR_PIPELINE', |
| 25 | 34 |
defaultValue: 'regular-0.103', |
| 26 | 35 |
description: 'test-pipelines branch for regular tests.'), |
| ... | ... |
@@ -44,7 +53,7 @@ properties( |
| 44 | 44 |
] |
| 45 | 45 |
) |
| 46 | 46 |
|
| 47 |
-node('ubuntu-18-x64') {
|
|
| 47 |
+node('docker') {
|
|
| 48 | 48 |
stage('Generate Tarball') {
|
| 49 | 49 |
cleanWs() |
| 50 | 50 |
|
| ... | ... |
@@ -63,13 +72,24 @@ node('ubuntu-18-x64') {
|
| 63 | 63 |
''' |
| 64 | 64 |
} |
| 65 | 65 |
|
| 66 |
- dir(path: 'build') {
|
|
| 67 |
- sh """# Make Dist |
|
| 68 |
- if [ -f '../autogen.sh' ] ; then /bin/chmod +x ../autogen.sh && ../autogen.sh ; fi |
|
| 69 |
- ../configure --enable-milter --disable-clamav --disable-silent-rules --enable-llvm --with-system-llvm=no |
|
| 70 |
- make distcheck |
|
| 71 |
- mv clamav-${params.VERSION}*.tar.gz clamav-${params.VERSION}.tar.gz || true"""
|
|
| 72 |
- archiveArtifacts(artifacts: "clamav-${params.VERSION}.tar.gz", onlyIfSuccessful: true)
|
|
| 66 |
+ // start up docker image |
|
| 67 |
+ def dockerImage = docker.build("autoconf", "./Jenkins")
|
|
| 68 |
+ |
|
| 69 |
+ try {
|
|
| 70 |
+ dockerImage.inside { c ->
|
|
| 71 |
+ dir(path: "build") {
|
|
| 72 |
+ sh """# Make Dist |
|
| 73 |
+ if [ -f '../autogen.sh' ] ; then /bin/chmod +x ../autogen.sh && ../autogen.sh ; fi |
|
| 74 |
+ ../configure --enable-milter --disable-clamav --disable-silent-rules --enable-llvm --with-system-llvm=no |
|
| 75 |
+ make dist |
|
| 76 |
+ mv clamav-${params.VERSION}*.tar.gz clamav-${params.VERSION}.tar.gz || true"""
|
|
| 77 |
+ archiveArtifacts(artifacts: "clamav-${params.VERSION}.tar.gz", onlyIfSuccessful: true)
|
|
| 78 |
+ } |
|
| 79 |
+ } |
|
| 80 |
+ } |
|
| 81 |
+ catch(IOException err) {
|
|
| 82 |
+ cleanWs() |
|
| 83 |
+ throw err |
|
| 73 | 84 |
} |
| 74 | 85 |
|
| 75 | 86 |
cleanWs() |
| ... | ... |
@@ -78,7 +98,7 @@ node('ubuntu-18-x64') {
|
| 78 | 78 |
def buildResult |
| 79 | 79 |
|
| 80 | 80 |
stage('Build') {
|
| 81 |
- buildResult = build(job: "test-pipelines/${params.BUILD_PIPELINE}",
|
|
| 81 |
+ buildResult = build(job: "${params.BUILD_PIPELINES_PATH}/${params.BUILD_PIPELINE}",
|
|
| 82 | 82 |
propagate: true, |
| 83 | 83 |
wait: true, |
| 84 | 84 |
parameters: [ |
| ... | ... |
@@ -89,24 +109,23 @@ node('ubuntu-18-x64') {
|
| 89 | 89 |
[$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
| 90 | 90 |
] |
| 91 | 91 |
) |
| 92 |
- echo "test-pipelines/${params.BUILD_PIPELINE} #${buildResult.number} succeeded."
|
|
| 92 |
+ echo "${params.BUILD_PIPELINES_PATH}/${params.BUILD_PIPELINE} #${buildResult.number} succeeded."
|
|
| 93 | 93 |
} |
| 94 | 94 |
|
| 95 | 95 |
stage('Test') {
|
| 96 | 96 |
def tasks = [:] |
| 97 | 97 |
|
| 98 |
- tasks["regular_and_custom"] = {
|
|
| 99 |
- def regularResult |
|
| 98 |
+ tasks["package_regular_custom"] = {
|
|
| 100 | 99 |
def exception = null |
| 101 | 100 |
try {
|
| 102 |
- stage("Regular Pipeline") {
|
|
| 103 |
- regularResult = build(job: "test-pipelines/${params.REGULAR_PIPELINE}",
|
|
| 101 |
+ stage("Package") {
|
|
| 102 |
+ final regularResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.PACKAGE_PIPELINE}",
|
|
| 104 | 103 |
propagate: true, |
| 105 | 104 |
wait: true, |
| 106 | 105 |
parameters: [ |
| 107 | 106 |
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NAME', value: "${JOB_NAME}"],
|
| 108 | 107 |
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NUMBER', value: "${BUILD_NUMBER}"],
|
| 109 |
- [$class: 'StringParameterValue', name: 'BUILD_JOB_NAME', value: "test-pipelines/${params.BUILD_PIPELINE}"],
|
|
| 108 |
+ [$class: 'StringParameterValue', name: 'BUILD_JOB_NAME', value: "${params.BUILD_PIPELINES_PATH}/${params.BUILD_PIPELINE}"],
|
|
| 110 | 109 |
[$class: 'StringParameterValue', name: 'BUILD_JOB_NUMBER', value: "${buildResult.number}"],
|
| 111 | 110 |
[$class: 'StringParameterValue', name: 'TESTS_BRANCH', value: "${params.TESTS_BRANCH}"],
|
| 112 | 111 |
[$class: 'StringParameterValue', name: 'FRAMEWORK_BRANCH', value: "${params.FRAMEWORK_BRANCH}"],
|
| ... | ... |
@@ -114,14 +133,36 @@ node('ubuntu-18-x64') {
|
| 114 | 114 |
[$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
| 115 | 115 |
] |
| 116 | 116 |
) |
| 117 |
- echo "test-pipelines/${params.REGULAR_PIPELINE} #${regularResult.number} succeeded."
|
|
| 117 |
+ echo "${params.TEST_PIPELINES_PATH}/${params.PACKAGE_PIPELINE} #${regularResult.number} succeeded."
|
|
| 118 |
+ } |
|
| 119 |
+ } catch (exc) {
|
|
| 120 |
+ echo "${params.TEST_PIPELINES_PATH}/${params.PACKAGE_PIPELINE} failed."
|
|
| 121 |
+ exception = exc |
|
| 122 |
+ } |
|
| 123 |
+ |
|
| 124 |
+ try {
|
|
| 125 |
+ stage("Regular From-Source") {
|
|
| 126 |
+ final regularResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.REGULAR_PIPELINE}",
|
|
| 127 |
+ propagate: true, |
|
| 128 |
+ wait: true, |
|
| 129 |
+ parameters: [ |
|
| 130 |
+ [$class: 'StringParameterValue', name: 'CLAMAV_JOB_NAME', value: "${JOB_NAME}"],
|
|
| 131 |
+ [$class: 'StringParameterValue', name: 'CLAMAV_JOB_NUMBER', value: "${BUILD_NUMBER}"],
|
|
| 132 |
+ [$class: 'StringParameterValue', name: 'TESTS_BRANCH', value: "${params.TESTS_BRANCH}"],
|
|
| 133 |
+ [$class: 'StringParameterValue', name: 'FRAMEWORK_BRANCH', value: "${params.FRAMEWORK_BRANCH}"],
|
|
| 134 |
+ [$class: 'StringParameterValue', name: 'VERSION', value: "${params.VERSION}"],
|
|
| 135 |
+ [$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
|
| 136 |
+ ] |
|
| 137 |
+ ) |
|
| 138 |
+ echo "${params.TEST_PIPELINES_PATH}/${params.REGULAR_PIPELINE} #${regularResult.number} succeeded."
|
|
| 118 | 139 |
} |
| 119 | 140 |
} catch (exc) {
|
| 120 |
- echo "test-pipelines/${params.REGULAR_PIPELINE} failed."
|
|
| 141 |
+ echo "${params.TEST_PIPELINES_PATH}/${params.REGULAR_PIPELINE} failed."
|
|
| 121 | 142 |
exception = exc |
| 122 | 143 |
} |
| 123 |
- stage("Custom Pipeline") {
|
|
| 124 |
- final customResult = build(job: "test-pipelines/${params.CUSTOM_PIPELINE}",
|
|
| 144 |
+ |
|
| 145 |
+ stage("Custom From-Source") {
|
|
| 146 |
+ final customResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.CUSTOM_PIPELINE}",
|
|
| 125 | 147 |
propagate: true, |
| 126 | 148 |
wait: true, |
| 127 | 149 |
parameters: [ |
| ... | ... |
@@ -133,17 +174,17 @@ node('ubuntu-18-x64') {
|
| 133 | 133 |
[$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
| 134 | 134 |
] |
| 135 | 135 |
) |
| 136 |
- echo "test-pipelines/${params.CUSTOM_PIPELINE} #${customResult.number} succeeded."
|
|
| 136 |
+ echo "${params.TEST_PIPELINES_PATH}/${params.CUSTOM_PIPELINE} #${customResult.number} succeeded."
|
|
| 137 | 137 |
} |
| 138 | 138 |
if(exception != null) {
|
| 139 |
- echo "Custom Pipeline passed, but Regular pipeline failed!" |
|
| 139 |
+ echo "Custom Pipeline passed, but prior pipelines failed!" |
|
| 140 | 140 |
throw exception |
| 141 | 141 |
} |
| 142 | 142 |
} |
| 143 | 143 |
|
| 144 | 144 |
tasks["fuzz_regression"] = {
|
| 145 | 145 |
stage("Fuzz Regression") {
|
| 146 |
- final fuzzResult = build(job: "test-pipelines/${params.FUZZ_PIPELINE}",
|
|
| 146 |
+ final fuzzResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.FUZZ_PIPELINE}",
|
|
| 147 | 147 |
propagate: true, |
| 148 | 148 |
wait: true, |
| 149 | 149 |
parameters: [ |
| ... | ... |
@@ -154,7 +195,7 @@ node('ubuntu-18-x64') {
|
| 154 | 154 |
[$class: 'StringParameterValue', name: 'VERSION', value: "${params.VERSION}"]
|
| 155 | 155 |
] |
| 156 | 156 |
) |
| 157 |
- echo "test-pipelines/${params.FUZZ_PIPELINE} #${fuzzResult.number} succeeded."
|
|
| 157 |
+ echo "${params.TEST_PIPELINES_PATH}/${params.FUZZ_PIPELINE} #${fuzzResult.number} succeeded."
|
|
| 158 | 158 |
} |
| 159 | 159 |
} |
| 160 | 160 |
|
| ... | ... |
@@ -3,6 +3,10 @@ |
| 3 | 3 |
Note: This file refers to the source tarball. Things described here may differ |
| 4 | 4 |
slightly from the binary packages. |
| 5 | 5 |
|
| 6 |
+## 0.103.12 |
|
| 7 |
+ |
|
| 8 |
+ClamAV 0.103.12 is a patch release with the following fixes: |
|
| 9 |
+ |
|
| 6 | 10 |
## 0.103.11 |
| 7 | 11 |
|
| 8 | 12 |
ClamAV 0.103.11 is a patch release with the following fixes: |
| ... | ... |
@@ -22,7 +22,7 @@ AC_PREREQ([2.59]) |
| 22 | 22 |
|
| 23 | 23 |
dnl For a release change [devel] to the real version [0.xy] |
| 24 | 24 |
dnl also change VERSION below |
| 25 |
-AC_INIT([ClamAV], [0.103.11], [https://github.com/Cisco-Talos/clamav/issues], [clamav], [https://www.clamav.net/]) |
|
| 25 |
+AC_INIT([ClamAV], [0.103.12], [https://github.com/Cisco-Talos/clamav/issues], [clamav], [https://www.clamav.net/]) |
|
| 26 | 26 |
|
| 27 | 27 |
dnl put configure auxiliary into config |
| 28 | 28 |
AC_CONFIG_AUX_DIR([config]) |
| ... | ... |
@@ -998,7 +998,7 @@ fc_error_t get_official_database_lists( |
| 998 | 998 |
uint32_t i; |
| 999 | 999 |
|
| 1000 | 1000 |
const char *hardcodedStandardDatabaseList[] = {"daily", "main", "bytecode"};
|
| 1001 |
- const char *hardcodedOptionalDatabaseList[] = {"safebrowsing", "test"};
|
|
| 1001 |
+ const char *hardcodedOptionalDatabaseList[] = {"safebrowsing", "test", "valhalla"};
|
|
| 1002 | 1002 |
|
| 1003 | 1003 |
if ((NULL == standardDatabases) || (NULL == nStandardDatabases) || (NULL == optionalDatabases) || (NULL == nOptionalDatabases)) {
|
| 1004 | 1004 |
mprintf("!get_official_database_lists: Invalid arguments.\n");
|
| ... | ... |
@@ -1424,6 +1424,10 @@ fc_error_t perform_database_update( |
| 1424 | 1424 |
uint32_t nUpdated = 0; |
| 1425 | 1425 |
uint32_t nTotalUpdated = 0; |
| 1426 | 1426 |
|
| 1427 |
+ uint32_t i; |
|
| 1428 |
+ char **doNotPruneDatabaseList = NULL; |
|
| 1429 |
+ uint32_t nDoNotPruneDatabases = 0; |
|
| 1430 |
+ |
|
| 1427 | 1431 |
STATBUF statbuf; |
| 1428 | 1432 |
|
| 1429 | 1433 |
if (NULL == serverList) {
|
| ... | ... |
@@ -1444,7 +1448,38 @@ fc_error_t perform_database_update( |
| 1444 | 1444 |
* Prune database directory of official databases |
| 1445 | 1445 |
* that are no longer available or no longer desired. |
| 1446 | 1446 |
*/ |
| 1447 |
- (void)fc_prune_database_directory(databaseList, nDatabases); |
|
| 1447 |
+ |
|
| 1448 |
+ // include the URL databases in the prune process |
|
| 1449 |
+ doNotPruneDatabaseList = (char **)malloc(sizeof(char *) * (nDatabases + nUrlDatabases)); |
|
| 1450 |
+ if (NULL == doNotPruneDatabaseList) {
|
|
| 1451 |
+ logg("!perform_database_update: Can't allocate memory for doNotPruneDatabaseList\n");
|
|
| 1452 |
+ status = FC_EMEM; |
|
| 1453 |
+ goto done; |
|
| 1454 |
+ } |
|
| 1455 |
+ |
|
| 1456 |
+ for (i = 0; i < nDatabases; i++) {
|
|
| 1457 |
+ doNotPruneDatabaseList[i] = strdup(databaseList[i]); |
|
| 1458 |
+ if (doNotPruneDatabaseList[i] == NULL) {
|
|
| 1459 |
+ logg("!perform_database_update: Can't allocate memory for database name in doNotPruneDatabaseList\n");
|
|
| 1460 |
+ status = FC_EMEM; |
|
| 1461 |
+ goto done; |
|
| 1462 |
+ } |
|
| 1463 |
+ } |
|
| 1464 |
+ nDoNotPruneDatabases = nDatabases; |
|
| 1465 |
+ |
|
| 1466 |
+ for (i = 0; i < nUrlDatabases; i++) {
|
|
| 1467 |
+ // Only append the URL databases that end with '.cvd' |
|
| 1468 |
+ if (strlen(urlDatabaseList[i]) > 4 && 0 == strcasecmp(urlDatabaseList[i] + strlen(urlDatabaseList[i]) - 4, ".cvd")) {
|
|
| 1469 |
+ const char *startOfFilename = strrchr(urlDatabaseList[i], '/') + 1; |
|
| 1470 |
+ if (NULL != startOfFilename) {
|
|
| 1471 |
+ // Add the base database name to the do-not-prune list, excluding the '.cvd' extension. |
|
| 1472 |
+ doNotPruneDatabaseList[nDatabases + i] = CLI_STRNDUP(startOfFilename, strlen(startOfFilename) - strlen(".cvd"));
|
|
| 1473 |
+ nDoNotPruneDatabases++; |
|
| 1474 |
+ } |
|
| 1475 |
+ } |
|
| 1476 |
+ } |
|
| 1477 |
+ |
|
| 1478 |
+ (void)fc_prune_database_directory(doNotPruneDatabaseList, nDoNotPruneDatabases); |
|
| 1448 | 1479 |
} |
| 1449 | 1480 |
|
| 1450 | 1481 |
/* |
| ... | ... |
@@ -1515,6 +1550,16 @@ fc_error_t perform_database_update( |
| 1515 | 1515 |
|
| 1516 | 1516 |
done: |
| 1517 | 1517 |
|
| 1518 |
+ // Free up the database list |
|
| 1519 |
+ if (NULL != doNotPruneDatabaseList) {
|
|
| 1520 |
+ for (i = 0; i < nDoNotPruneDatabases; i++) {
|
|
| 1521 |
+ free(doNotPruneDatabaseList[i]); |
|
| 1522 |
+ doNotPruneDatabaseList[i] = NULL; |
|
| 1523 |
+ } |
|
| 1524 |
+ free(doNotPruneDatabaseList); |
|
| 1525 |
+ doNotPruneDatabaseList = NULL; |
|
| 1526 |
+ } |
|
| 1527 |
+ |
|
| 1518 | 1528 |
if (LSTAT(g_freshclamTempDirectory, &statbuf) != -1) {
|
| 1519 | 1529 |
/* Remove temp directory */ |
| 1520 | 1530 |
if (*g_freshclamTempDirectory) {
|
| ... | ... |
@@ -157,6 +157,7 @@ enum FunctionalityLevels {
|
| 157 | 157 |
FUNC_LEVEL_0103_9 = 130, /**< LibClamAV release 0.103.9 */ |
| 158 | 158 |
FUNC_LEVEL_0103_10 = 131, /**< LibClamAV release 0.103.10 */ |
| 159 | 159 |
FUNC_LEVEL_0103_11 = 132, /**< LibClamAV release 0.103.11 */ |
| 160 |
+ FUNC_LEVEL_0103_12 = 133, /**< LibClamAV release 0.103.12 */ |
|
| 160 | 161 |
}; |
| 161 | 162 |
|
| 162 | 163 |
/** |
| ... | ... |
@@ -48,7 +48,8 @@ |
| 48 | 48 |
|
| 49 | 49 |
int cli_check_mydoom_log(cli_ctx *ctx) |
| 50 | 50 |
{
|
| 51 |
- const uint32_t *record; |
|
| 51 |
+ uint32_t record[16]; |
|
| 52 |
+ const uint32_t *ptr; |
|
| 52 | 53 |
uint32_t check, key; |
| 53 | 54 |
fmap_t *map = ctx->fmap; |
| 54 | 55 |
unsigned int blocks = map->len / (8 * 4); |
| ... | ... |
@@ -59,14 +60,24 @@ int cli_check_mydoom_log(cli_ctx *ctx) |
| 59 | 59 |
if (blocks > 5) |
| 60 | 60 |
blocks = 5; |
| 61 | 61 |
|
| 62 |
- record = fmap_need_off_once(map, 0, 8 * 4 * blocks); |
|
| 63 |
- if (!record) |
|
| 62 |
+ /* |
|
| 63 |
+ * The following pointer might not be properly aligned. There there is |
|
| 64 |
+ * memcmp() + memcpy() workaround to avoid performing an unaligned access |
|
| 65 |
+ * while reading the uint32_t. |
|
| 66 |
+ */ |
|
| 67 |
+ ptr = fmap_need_off_once(map, 0, 8 * 4 * blocks); |
|
| 68 |
+ if (!ptr) |
|
| 64 | 69 |
return CL_CLEAN; |
| 70 |
+ |
|
| 65 | 71 |
while (blocks) { /* This wasn't probably intended but that's what the current code does anyway */
|
| 66 |
- if (record[--blocks] == 0xffffffff) |
|
| 72 |
+ const uint32_t marker_ff = 0xffffffff; |
|
| 73 |
+ |
|
| 74 |
+ if (!memcmp(&ptr[--blocks], &marker_ff, sizeof(uint32_t))) |
|
| 67 | 75 |
return CL_CLEAN; |
| 68 | 76 |
} |
| 69 | 77 |
|
| 78 |
+ memcpy(record, ptr, sizeof(record)); |
|
| 79 |
+ |
|
| 70 | 80 |
key = ~be32_to_host(record[0]); |
| 71 | 81 |
check = (be32_to_host(record[1]) ^ key) + |
| 72 | 82 |
(be32_to_host(record[2]) ^ key) + |
| ... | ... |
@@ -3,7 +3,7 @@ dnl During active development, set: VERSION="<version>-devel-`date +%Y%m%d`" |
| 3 | 3 |
dnl For beta, set: VERSION="<version>-beta" |
| 4 | 4 |
dnl For release candidate, set: VERSION="<version>-rc" |
| 5 | 5 |
dnl For release, set: VERSION="<version>" |
| 6 |
-VERSION="0.103.11" |
|
| 6 |
+VERSION="0.103.12" |
|
| 7 | 7 |
|
| 8 | 8 |
major=`echo $PACKAGE_VERSION |cut -d. -f1 | sed -e "s/[^0-9]//g"` |
| 9 | 9 |
minor=`echo $PACKAGE_VERSION |cut -d. -f2 | sed -e "s/[^0-9]//g"` |
| ... | ... |
@@ -8,7 +8,7 @@ |
| 8 | 8 |
|
| 9 | 9 |
[Setup] |
| 10 | 10 |
AppName=ClamAV |
| 11 |
-AppVersion=0.103.11 |
|
| 11 |
+AppVersion=0.103.12 |
|
| 12 | 12 |
DefaultDirName={pf}\ClamAV
|
| 13 | 13 |
DefaultGroupName=ClamAV |
| 14 | 14 |
AppCopyright=2021 Cisco Systems, Inc. |
| ... | ... |
@@ -20,7 +20,7 @@ UninstallDisplayName=ClamAV |
| 20 | 20 |
Compression=lzma2 |
| 21 | 21 |
SolidCompression=yes |
| 22 | 22 |
OutputDir=. |
| 23 |
-OutputBaseFilename=ClamAV-0.103.11 |
|
| 23 |
+OutputBaseFilename=ClamAV-0.103.12 |
|
| 24 | 24 |
WizardImageFile=demon.bmp |
| 25 | 25 |
WizardSmallImageFile=talos.bmp |
| 26 | 26 |
|
| ... | ... |
@@ -480,7 +480,7 @@ |
| 480 | 480 |
#define PACKAGE_NAME "ClamAV" |
| 481 | 481 |
|
| 482 | 482 |
/* Define to the full name and version of this package. */ |
| 483 |
-#define PACKAGE_STRING "ClamAV 0.103.11" |
|
| 483 |
+#define PACKAGE_STRING "ClamAV 0.103.12" |
|
| 484 | 484 |
|
| 485 | 485 |
/* Define to the one symbol short name of this package. */ |
| 486 | 486 |
#define PACKAGE_TARNAME "clamav" |
| ... | ... |
@@ -489,7 +489,7 @@ |
| 489 | 489 |
#define PACKAGE_URL "https://www.clamav.net/" |
| 490 | 490 |
|
| 491 | 491 |
/* Define to the version of this package. */ |
| 492 |
-#define PACKAGE_VERSION "0.103.11" |
|
| 492 |
+#define PACKAGE_VERSION "0.103.12" |
|
| 493 | 493 |
|
| 494 | 494 |
/* scan buffer size */ |
| 495 | 495 |
#define SCANBUFF 131072 |
| ... | ... |
@@ -525,7 +525,7 @@ |
| 525 | 525 |
/* #undef USE_SYSLOG */ |
| 526 | 526 |
|
| 527 | 527 |
/* Version number of package */ |
| 528 |
-#define VERSION "0.103.11" |
|
| 528 |
+#define VERSION "0.103.12" |
|
| 529 | 529 |
|
| 530 | 530 |
/* Version suffix for package */ |
| 531 | 531 |
#define VERSION_SUFFIX "" |
| ... | ... |
@@ -100,7 +100,7 @@ |
| 100 | 100 |
<ExceptionHandling>Sync</ExceptionHandling> |
| 101 | 101 |
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> |
| 102 | 102 |
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
| 103 |
- <StructMemberAlignment>4Bytes</StructMemberAlignment> |
|
| 103 |
+ <StructMemberAlignment>Default</StructMemberAlignment> |
|
| 104 | 104 |
<RuntimeTypeInfo>false</RuntimeTypeInfo> |
| 105 | 105 |
<PrecompiledHeader>Use</PrecompiledHeader> |
| 106 | 106 |
<PrecompiledHeaderFile>rar.hpp</PrecompiledHeaderFile> |
| ... | ... |
@@ -131,7 +131,7 @@ |
| 131 | 131 |
<ExceptionHandling>Sync</ExceptionHandling> |
| 132 | 132 |
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> |
| 133 | 133 |
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
| 134 |
- <StructMemberAlignment>4Bytes</StructMemberAlignment> |
|
| 134 |
+ <StructMemberAlignment>Default</StructMemberAlignment> |
|
| 135 | 135 |
<RuntimeTypeInfo>false</RuntimeTypeInfo> |
| 136 | 136 |
<PrecompiledHeader>Use</PrecompiledHeader> |
| 137 | 137 |
<PrecompiledHeaderFile>rar.hpp</PrecompiledHeaderFile> |
| ... | ... |
@@ -162,7 +162,7 @@ |
| 162 | 162 |
<MinimalRebuild>false</MinimalRebuild> |
| 163 | 163 |
<ExceptionHandling>Sync</ExceptionHandling> |
| 164 | 164 |
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
| 165 |
- <StructMemberAlignment>4Bytes</StructMemberAlignment> |
|
| 165 |
+ <StructMemberAlignment>Default</StructMemberAlignment> |
|
| 166 | 166 |
<BufferSecurityCheck>true</BufferSecurityCheck> |
| 167 | 167 |
<FunctionLevelLinking>true</FunctionLevelLinking> |
| 168 | 168 |
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet> |
| ... | ... |
@@ -204,7 +204,7 @@ |
| 204 | 204 |
<MinimalRebuild>false</MinimalRebuild> |
| 205 | 205 |
<ExceptionHandling>Sync</ExceptionHandling> |
| 206 | 206 |
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
| 207 |
- <StructMemberAlignment>4Bytes</StructMemberAlignment> |
|
| 207 |
+ <StructMemberAlignment>Default</StructMemberAlignment> |
|
| 208 | 208 |
<BufferSecurityCheck>true</BufferSecurityCheck> |
| 209 | 209 |
<FunctionLevelLinking>true</FunctionLevelLinking> |
| 210 | 210 |
<RuntimeTypeInfo>false</RuntimeTypeInfo> |
| ... | ... |
@@ -180,10 +180,10 @@ my %CONF = ( |
| 180 | 180 |
'PACKAGE' => 'PACKAGE_NAME', |
| 181 | 181 |
'PACKAGE_BUGREPORT' => '"https://github.com/Cisco-Talos/clamav/issues"', |
| 182 | 182 |
'PACKAGE_NAME' => '"ClamAV"', |
| 183 |
- 'PACKAGE_STRING' => '"ClamAV 0.103.11"', |
|
| 183 |
+ 'PACKAGE_STRING' => '"ClamAV 0.103.12"', |
|
| 184 | 184 |
'PACKAGE_TARNAME' => '"clamav"', |
| 185 | 185 |
'PACKAGE_URL' => '"https://www.clamav.net/"', |
| 186 |
- 'PACKAGE_VERSION' => '"0.103.11"', |
|
| 186 |
+ 'PACKAGE_VERSION' => '"0.103.12"', |
|
| 187 | 187 |
'SCANBUFF' => '131072', |
| 188 | 188 |
'SETPGRP_VOID' => '1', |
| 189 | 189 |
'SIZEOF_INT' => '4', |