close a couple bugs
[debian/as31] / as31 / run.c
index 28c5317f9a56e49acb4912f00dddff1f1e598aa1..6010ee8c4ae89591a2eb3ef21c9990ba0d428989 100644 (file)
@@ -34,10 +34,10 @@ int run_as31(const char *infile, int lst, int use_stdout,
        FILE* finPre;
        char tmpName[256];
        char *lineBuffer=NULL;
-       int sizeBuf=0;
+       long unsigned int sizeBuf=0;
        char *includePtr=NULL;
        char *incLineBuffer=NULL;
-       int incSizeBuf=0;
+       long unsigned int incSizeBuf=0;
        FILE* includeFile=NULL;
        int fd;
 
@@ -113,7 +113,8 @@ int run_as31(const char *infile, int lst, int use_stdout,
        }
 
        while (!feof(finPre)) {
-               getline(&lineBuffer,&sizeBuf,finPre);
+               if (getline(&lineBuffer,&sizeBuf,finPre) == -1)
+                       break;
                if ((includePtr=strstr(lineBuffer,INC_CMD))) {
                        includePtr=includePtr+strlen(INC_CMD);
                        while ((*includePtr==' ')||             //move includePtr to filename
@@ -138,7 +139,8 @@ int run_as31(const char *infile, int lst, int use_stdout,
                                mesg_f("Cannot open include file: %s\n",includePtr);
                        } else {
                                while (!feof(includeFile)) {
-                                       getline(&incLineBuffer,&incSizeBuf,includeFile);
+                                       if (getline(&incLineBuffer,&incSizeBuf,includeFile) == -1)
+                                               break;
                                        fprintf(fin,"%s",incLineBuffer);
                                        if (strlen(incLineBuffer)) {
                                                incLineCount++;