Improve screening for invalid input to linesync.
[ircu2.10.12-pk.git] / tools / linesync / linesync.sh
index 27204785276d370d07dbc96506d9fe4009fe941a..77330ef28cefb01e6e842a17877ea382ccac634e 100755 (executable)
@@ -140,7 +140,7 @@ if [ ! -s "$TMPFILE" ]; then
         exit 1
 fi
 
-# Check wether the file contains any disallowed .conf lines
+# Check whether the file contains any disallowed .conf lines
 bad_lines=`egrep '^[^'$ALLOWED_LINES'|#]+' $TMPFILE`
 if [ ! -z "$bad_lines" ]; then
         echo "The file downloaded in $TMPFILE contains the following disallowed line(s):"
@@ -148,6 +148,14 @@ if [ ! -z "$bad_lines" ]; then
         exit 1
 fi
 
+# Check whether somebody tried to sneak a second block onto some line
+bad_lines=`egrep -i '}[        ]*;[    ]*[a-z]+[       ]*{' $TMPFILE`
+if [ ! -z "$bad_lines" ] ; then
+       echo "The file downloaded in $TMPFILE contains the following multi-block line(s):"
+        echo $bad_lines
+        exit 1
+fi
+
 # check our ircd.conf
 ircd_setup=`egrep '^# (BEGIN|END) LINESYNC$' $cpath|wc -l`
 if [ $ircd_setup != 2 ]; then