aboutsummaryrefslogtreecommitdiffstats
path: root/service/src
diff options
context:
space:
mode:
Diffstat (limited to 'service/src')
-rw-r--r--service/src/printdoc.c3
-rw-r--r--service/src/stlfile.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/service/src/printdoc.c b/service/src/printdoc.c
index 2bd24fd..0eb3127 100644
--- a/service/src/printdoc.c
+++ b/service/src/printdoc.c
@@ -241,7 +241,8 @@ main()
if (exit || !*linebuf) break;
if (*linebuf == '\n') continue;
- linebuf[strlen(linebuf) - 1] = '\0';
+ if (linebuf[strlen(linebuf) - 1] == '\n')
+ linebuf[strlen(linebuf) - 1] = '\0';
cp = strchr(linebuf, ' ');
arg = cp ? cp + 1 : NULL;
diff --git a/service/src/stlfile.c b/service/src/stlfile.c
index 95d3a07..72868f8 100644
--- a/service/src/stlfile.c
+++ b/service/src/stlfile.c
@@ -254,10 +254,13 @@ parse_file(struct parseinfo *info, char *buf, size_t len)
const char *tmp;
char *bp;
- if (len < 7) return FAIL;
-
if (info->valid) free_info(info);
+ if (len < 7) {
+ fprintf(stderr, "File too small!\n");
+ return FAIL;
+ }
+
for (bp = buf; strchr(wsset, *bp); bp++);
/* check bin vs ascii with first keyword */