mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-08-25 06:31:43 +02:00
modify rc_open only if it is not a NULL pointer
This commit is contained in:
parent
8ef0c1963f
commit
2e2dac3982
@ -714,23 +714,21 @@ trexio_open(const char* file_name, const char mode,
|
|||||||
{
|
{
|
||||||
|
|
||||||
if (file_name == NULL || file_name[0] == '\0') {
|
if (file_name == NULL || file_name[0] == '\0') {
|
||||||
*rc_open = TREXIO_INVALID_ARG_1;
|
if (rc_open != NULL) *rc_open = TREXIO_INVALID_ARG_1;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* Check overflow in file_name */
|
/* Check overflow in file_name */
|
||||||
|
|
||||||
if (back_end < 0 || back_end >= TREXIO_INVALID_BACK_END) {
|
if (back_end < 0 || back_end >= TREXIO_INVALID_BACK_END) {
|
||||||
*rc_open = TREXIO_INVALID_ARG_3;
|
if (rc_open != NULL) *rc_open = TREXIO_INVALID_ARG_3;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode != 'r' && mode != 'w') {
|
if (mode != 'r' && mode != 'w') {
|
||||||
*rc_open = TREXIO_INVALID_ARG_2;
|
if (rc_open != NULL) *rc_open = TREXIO_INVALID_ARG_2;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rc_open == NULL) return NULL;
|
|
||||||
|
|
||||||
trexio_t* result = NULL;
|
trexio_t* result = NULL;
|
||||||
void* result_tmp = NULL;
|
void* result_tmp = NULL;
|
||||||
|
|
||||||
@ -758,14 +756,14 @@ trexio_open(const char* file_name, const char mode,
|
|||||||
|
|
||||||
strncpy(result->file_name, file_name, TREXIO_MAX_FILENAME_LENGTH);
|
strncpy(result->file_name, file_name, TREXIO_MAX_FILENAME_LENGTH);
|
||||||
if (result->file_name[TREXIO_MAX_FILENAME_LENGTH-1] != '\0') {
|
if (result->file_name[TREXIO_MAX_FILENAME_LENGTH-1] != '\0') {
|
||||||
*rc_open = TREXIO_INVALID_ARG_1;
|
if (rc_open != NULL) *rc_open = TREXIO_INVALID_ARG_1;
|
||||||
free(result);
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
strncpy(result->version, PACKAGE_VERSION, 16);
|
strncpy(result->version, PACKAGE_VERSION, 16);
|
||||||
if (result->version[15] != '\0') {
|
if (result->version[15] != '\0') {
|
||||||
*rc_open = TREXIO_FAILURE;
|
if (rc_open != NULL) *rc_open = TREXIO_FAILURE;
|
||||||
free(result);
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -803,14 +801,14 @@ trexio_open(const char* file_name, const char mode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rc != TREXIO_SUCCESS) {
|
if (rc != TREXIO_SUCCESS) {
|
||||||
*rc_open = TREXIO_OPEN_ERROR;
|
if (rc_open != NULL) *rc_open = TREXIO_OPEN_ERROR;
|
||||||
free(result);
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = trexio_has_metadata_package_version(result);
|
rc = trexio_has_metadata_package_version(result);
|
||||||
if (rc == TREXIO_FAILURE) {
|
if (rc == TREXIO_FAILURE) {
|
||||||
*rc_open = TREXIO_OPEN_ERROR;
|
if (rc_open != NULL) *rc_open = TREXIO_OPEN_ERROR;
|
||||||
free(result);
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -834,7 +832,7 @@ trexio_open(const char* file_name, const char mode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rc != TREXIO_SUCCESS) {
|
if (rc != TREXIO_SUCCESS) {
|
||||||
*rc_open = TREXIO_OPEN_ERROR;
|
if (rc_open != NULL) *rc_open = TREXIO_OPEN_ERROR;
|
||||||
free(result);
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -861,12 +859,12 @@ trexio_open(const char* file_name, const char mode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rc != TREXIO_SUCCESS) {
|
if (rc != TREXIO_SUCCESS) {
|
||||||
*rc_open = TREXIO_LOCK_ERROR;
|
if (rc_open != NULL) *rc_open = TREXIO_LOCK_ERROR;
|
||||||
free(result);
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*rc_open = TREXIO_SUCCESS;
|
if (rc_open != NULL) *rc_open = TREXIO_SUCCESS;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
Loading…
Reference in New Issue
Block a user