SpiderScript - Bugfixes and speed improvements
[tpg/acess2.git] / Usermode / Libraries / libspiderscript.so_src / main.c
index 20554f5..919a6f2 100644 (file)
@@ -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 ) {

UCC git Repository :: git.ucc.asn.au