rare memory leak fixed
diff --git a/skeletons/REAL.c b/skeletons/REAL.c
index 6411aa4..e5cced8 100644
--- a/skeletons/REAL.c
+++ b/skeletons/REAL.c
@@ -137,6 +137,7 @@
 
 		dot = (buf[0] == 0x2d /* '-' */) ? (buf + 2) : (buf + 1);
 		if(*dot >= 0x30) {
+			if(buf != local_buf) FREEMEM(buf);
 			errno = EINVAL;
 			return -1;	/* Not a dot, really */
 		}
@@ -157,6 +158,7 @@
 				}
 				expptr++;
 				if(expptr > end) {
+					if(buf != local_buf) FREEMEM(buf);
 					errno = EINVAL;
 					return -1;
 				}
@@ -182,6 +184,7 @@
 			}
 		}
 		if(E == end) {
+			if(buf != local_buf) FREEMEM(buf);
 			errno = EINVAL;
 			return -1;		/* No promised E */
 		}