From a10615bd8715f7f3fa0b2cace9f3816e617069ac Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Mon, 28 Nov 2005 20:54:29 +0000 Subject: [PATCH] Check header signature --- libemile/emile_second_get_configuration.c | 3 +++ libemile/emile_second_set_configuration.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libemile/emile_second_get_configuration.c b/libemile/emile_second_get_configuration.c index 994652f..e8b7d3f 100644 --- a/libemile/emile_second_get_configuration.c +++ b/libemile/emile_second_get_configuration.c @@ -22,6 +22,9 @@ char* emile_second_get_configuration(int fd) if (ret != sizeof(header)) return NULL; + if (!EMILE_COMPAT(EMILE_06_SIGNATURE, read_long(&header.signature))) + return NULL; + size = read_short(&header.conf_size); conf = (char*)malloc(size); if (conf == NULL) diff --git a/libemile/emile_second_set_configuration.c b/libemile/emile_second_set_configuration.c index 11d3850..3d7633e 100644 --- a/libemile/emile_second_set_configuration.c +++ b/libemile/emile_second_set_configuration.c @@ -30,9 +30,12 @@ int emile_second_set_configuration(int fd, char *configuration) if (ret != sizeof(header)) return EEMILE_CANNOT_READ_SECOND; + if (!EMILE_COMPAT(EMILE_06_SIGNATURE, read_long(&header.signature))) + return EEMILE_INVALID_SECOND; + size = read_short(&header.conf_size); if (len > size) - return EEMILE_CANNOT_READ_SECOND; + return EEMILE_INVALID_SECOND; ret = write(fd, configuration, len); if (ret != len)