aide/aide-0.13.1-libgrypt-init.p...

42 lines
1.6 KiB
Diff

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);