mirror of
https://github.com/kgabis/parson.git
synced 2025-02-05 17:05:29 +00:00
check if ftell() returns -1
This commit is contained in:
parent
2b4d17b337
commit
33b77673cb
8
parson.c
8
parson.c
@ -179,11 +179,17 @@ static size_t parson_strlen(const char *string) {
|
|||||||
static char * read_file(const char * filename) {
|
static char * read_file(const char * filename) {
|
||||||
FILE *fp = fopen(filename, "r");
|
FILE *fp = fopen(filename, "r");
|
||||||
size_t file_size;
|
size_t file_size;
|
||||||
|
long pos;
|
||||||
char *file_contents;
|
char *file_contents;
|
||||||
if (!fp)
|
if (!fp)
|
||||||
return NULL;
|
return NULL;
|
||||||
fseek(fp, 0L, SEEK_END);
|
fseek(fp, 0L, SEEK_END);
|
||||||
file_size = ftell(fp);
|
pos = ftell(fp);
|
||||||
|
if (pos < 0) {
|
||||||
|
fclose(fp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
file_size = pos;
|
||||||
rewind(fp);
|
rewind(fp);
|
||||||
file_contents = (char*)PARSON_MALLOC(sizeof(char) * (file_size + 1));
|
file_contents = (char*)PARSON_MALLOC(sizeof(char) * (file_size + 1));
|
||||||
if (!file_contents) {
|
if (!file_contents) {
|
||||||
|
Loading…
Reference in New Issue
Block a user