From 4ae35e897481e411ee49571fd7d399a732be7675 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 28 Feb 2015 10:44:45 +0100 Subject: [PATCH] parser/inpgtok.c, bug fix, introduced in "memory leaks: code improved" commit "memory leaks: code improved" Date: Sun Apr 5 08:57:55 2009 +0000 'point' has not been incremented for so called "Weird items" with string length == 1 --- src/spicelib/parser/inpgtok.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/spicelib/parser/inpgtok.c b/src/spicelib/parser/inpgtok.c index 83de945cb..3c8d09728 100644 --- a/src/spicelib/parser/inpgtok.c +++ b/src/spicelib/parser/inpgtok.c @@ -95,9 +95,10 @@ int INPgetTok(char **line, char **token, int gobble) } + if (point == *line && *point) /* Weird items, 1 char */ + point++; + diffpoints = (int)(point - *line); - if ((diffpoints < 1) && *point) - diffpoints = 1; /* Weird items, 1 char */ *token = TMALLOC(char, 1 + diffpoints); if (!*token) return (E_NOMEM); @@ -190,10 +191,11 @@ int INPgetNetTok(char **line, char **token, int gobble) break; } + if (point == *line && *point) /* Weird items, 1 char */ + point++; + /* now copy found token into *token */ diffpoints = (int)(point - *line); - if ((diffpoints < 1) && *point) - diffpoints = 1; /* Weird items, 1 char */ *token = TMALLOC(char, 1 + diffpoints); if (!*token) return (E_NOMEM);