librazor/razor.c
changeset 447 0a5e583393e1
parent 442 c4bcba8023a9
child 458 3f841a46eab5
     1.1 --- a/librazor/razor.c	Sat Aug 23 16:28:31 2014 +0100
     1.2 +++ b/librazor/razor.c	Tue Sep 09 15:27:12 2014 +0100
     1.3 @@ -147,11 +147,12 @@
     1.4  	struct razor_mapped_file *file;
     1.5  	const char *pool, *reason;
     1.6  	struct array *array;
     1.7 -	int i, j;
     1.8 +	int i, j, code;
     1.9  
    1.10  	file = zalloc(sizeof *file);
    1.11  	if (file == NULL) {
    1.12 -		razor_set_error(error, NULL, "Not enough memory");
    1.13 +		razor_set_error(error, RAZOR_POSIX_ERROR, ENOMEM, NULL,
    1.14 +				"Not enough memory");
    1.15  		return -1;
    1.16  	}
    1.17  
    1.18 @@ -163,18 +164,22 @@
    1.19  		return -1;
    1.20  	}
    1.21  
    1.22 -	if (file->size < sizeof *file->header)
    1.23 +	if (file->size < sizeof *file->header) {
    1.24 +		code = RAZOR_GENERAL_ERROR_DATABASE_CORRUPTED;
    1.25  		reason = "Premature EOF";
    1.26 -	else if (file->header->magic != RAZOR_MAGIC)
    1.27 +	} else if (file->header->magic != RAZOR_MAGIC) {
    1.28 +		code = RAZOR_GENERAL_ERROR_DATABASE_CORRUPTED;
    1.29  		reason = "Bad magic number";
    1.30 -	else if (file->header->version < RAZOR_HEADER_VERSION_MIN ||
    1.31 -		 file->header->version > RAZOR_HEADER_VERSION)
    1.32 +	} else if (file->header->version < RAZOR_HEADER_VERSION_MIN ||
    1.33 +		   file->header->version > RAZOR_HEADER_VERSION) {
    1.34 +		code = RAZOR_GENERAL_ERROR_DATABASE_INCOMPATIBLE;
    1.35  		reason = "Incompatible file version";
    1.36 -	else
    1.37 +	} else
    1.38  		reason = NULL;
    1.39  
    1.40  	if (reason) {
    1.41 -		razor_set_error(error, filename, reason);
    1.42 +		razor_set_error(error, RAZOR_GENERAL_ERROR, code, filename,
    1.43 +				reason);
    1.44  		razor_file_free_contents(file->header, file->size);
    1.45  		free(file);
    1.46  		return -1;
    1.47 @@ -222,7 +227,8 @@
    1.48  
    1.49  	set = zalloc(sizeof *set);
    1.50  	if (!set) {
    1.51 -		razor_set_error(error, NULL, "Not enough memory");
    1.52 +		razor_set_error(error, RAZOR_POSIX_ERROR, ENOMEM, NULL,
    1.53 +				"Not enough memory");
    1.54  		return NULL;
    1.55  	}
    1.56