X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibspiderscript.so_src%2Fmain.c;h=919a6f2ec3fa229676a8c93c25c12e3a7aa3044a;hb=9b714e5ea3767470ab5c35f14da67bcb97275021;hp=20554f55fb362578023680976e5a3a23bb5527f2;hpb=5e007006d5b007c29268e4c949a8c9d472233257;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libspiderscript.so_src/main.c b/Usermode/Libraries/libspiderscript.so_src/main.c index 20554f55..919a6f2e 100644 --- a/Usermode/Libraries/libspiderscript.so_src/main.c +++ b/Usermode/Libraries/libspiderscript.so_src/main.c @@ -42,10 +42,6 @@ tSpiderScript *SpiderScript_ParseFile(tSpiderVariant *Variant, const char *Filen return NULL; } - // Create the script - ret = malloc(sizeof(tSpiderScript)); - ret->Variant = Variant; - fseek(fp, 0, SEEK_END); fLen = ftell(fp); fseek(fp, 0, SEEK_SET); @@ -53,11 +49,19 @@ tSpiderScript *SpiderScript_ParseFile(tSpiderVariant *Variant, const char *Filen // Allocate and read data data = malloc(fLen + 1); if(!data) return NULL; - fread(data, fLen, 1, fp); + fLen = fread(data, 1, fLen, fp); + if( fLen < 0 ) { + free(data); + return NULL; + } data[fLen] = '\0'; fclose(fp); + // Create the script + ret = malloc(sizeof(tSpiderScript)); + ret->Variant = Variant; + ret->CurNamespace = NULL; ret->Script = Parse_Buffer(Variant, data); if( ret->Script == NULL ) {