diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-02-13 22:09:37 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-02-15 18:09:40 +0100 |
commit | 943486f573ea5395d8b38735dbe019d2a3dfc5dd (patch) | |
tree | 7b0b69d9877c65fbbebc28bb6e85302d9438b014 | |
parent | 6f4d85d2150c287432f7696659f22eeca0a0e1b2 (diff) |
Add a "sequence error" to libsquashfs error codes
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r-- | include/sqfs/error.h | 12 | ||||
-rw-r--r-- | lib/common/perror.c | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/sqfs/error.h b/include/sqfs/error.h index 77e33ed..055e98f 100644 --- a/include/sqfs/error.h +++ b/include/sqfs/error.h @@ -133,6 +133,18 @@ typedef enum { * @brief An invalid argument was passed to a library function. */ SQFS_ERROR_ARG_INVALID = -16, + + /** + * @brief Library functions were called an a nonsensical order. + * + * Some libsquashfs functions operate on an object with an internal + * state. Depending on the state, calling a function might not make + * sense at all (e.g. calling foo_end before foo_begin). In that case, + * this error is returned, signifying to the caller that the sequence + * makes not sense, but the object itself is unchanged, no action was + * performed and the object can still be used. + */ + SQFS_ERROR_SEQUENCE = -17, } E_SQFS_ERROR; #endif /* SQFS_ERROR_H */ diff --git a/lib/common/perror.c b/lib/common/perror.c index a0a86aa..c7dab08 100644 --- a/lib/common/perror.c +++ b/lib/common/perror.c @@ -61,6 +61,9 @@ void sqfs_perror(const char *file, const char *action, int error_code) case SQFS_ERROR_ARG_INVALID: errstr = "invalid argument"; break; + case SQFS_ERROR_SEQUENCE: + errstr = "illegal oder of operations"; + break; default: errstr = "libsquashfs returned an unknown error code"; break; |