Blob Blame History Raw
diff -urp aide-0.13.1.orig/doc/aide.1.in aide-0.13.1/doc/aide.1.in
--- aide-0.13.1.orig/doc/aide.1.in	2009-12-01 12:23:10.000000000 -0500
+++ aide-0.13.1/doc/aide.1.in	2009-12-01 12:28:14.000000000 -0500
@@ -67,6 +67,7 @@ conditions:
 .IP "16 Unimplemented function error"
 .IP "17 Invalid configureline error"
 .IP "18 IO error"
+.IP "19 Version mismatch error"
 .PP
 .SH NOTES
 Please note that due to mmap issues, aide cannot be terminated with
diff -urp aide-0.13.1.orig/include/report.h aide-0.13.1/include/report.h
--- aide-0.13.1.orig/include/report.h	2009-12-01 12:23:10.000000000 -0500
+++ aide-0.13.1/include/report.h	2009-12-01 12:27:43.000000000 -0500
@@ -31,6 +31,7 @@
 #define UNIMPLEMENTED_FUNCTION_ERROR 16
 #define INVALID_CONFIGURELINE_ERROR 17
 #define IO_ERROR 18
+#define VERSION_MISMATCH_ERROR 19
 
 /* Errorcodes */
 #define HASH_ALGO_ERROR 30
diff -urp aide-0.13.1.orig/src/md.c aide-0.13.1/src/md.c
--- aide-0.13.1.orig/src/md.c	2009-12-01 12:23:10.000000000 -0500
+++ aide-0.13.1/src/md.c	2009-12-01 12:27:04.000000000 -0500
@@ -201,6 +201,15 @@ int init_md(struct md_container* md) {
 #endif 
 #ifdef WITH_GCRYPT
   error(255,"Gcrypt library initialization\n");
+  	/* 
+  	  Initialize libgcrypt as per
+  	  http://www.gnupg.org/documentation/manuals/gcrypt/Initializing-the-library.html
+  	 */
+  	if(!gcry_check_version(GCRYPT_VERSION)) {
+		error(0,"libgcrypt version mismatch\n");
+		exit(VERSION_MISMATCH_ERROR);
+	}
+	gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
 	if(gcry_md_open(&md->mdh,0,0)!=GPG_ERR_NO_ERROR){
 		error(0,"gcrypt_md_open failed\n");
 		exit(IO_ERROR);