1.1 --- a/librazor/razor.c Sat Aug 23 16:28:31 2014 +0100
1.2 +++ b/librazor/razor.c Fri Oct 17 09:57:19 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