summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodriguez Betancourt, Esteban <estebarb@hpe.com>2016-04-15 23:08:47 +0000
committerBen Pfaff <blp@ovn.org>2016-04-22 08:43:00 -0700
commit39916858552d43ceedf9b1680fb79734b336a19e (patch)
tree36ed933a2ed0ca327c030622d63bf7219ab900c3
parent7ab0b62b344758651676f55577acbc1a21e15110 (diff)
downloadopenvswitch-39916858552d43ceedf9b1680fb79734b336a19e.tar.gz
cksum: Refine schema cksum validation
Calculates the cksum removing the cksum line using a more strict regex than the used previously. It fixes a problem when calculating the cksum of a schema that has fields with the substring cksum (e.g.: a checksum column), lines that the previous cksum calculation incorrectly removes before running cksum. Also, the tool calculate-schema-cksum is introduced. This tool calculates the cksum of a schema file. It could be used in other programs, instead of calculating the cksum in an eventually different way than the expected by cksum-schema-check and other tools. Signed-off-by: Esteban Rodriguez Betancourt <estebarb@hpe.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
-rw-r--r--Makefile.am1
-rwxr-xr-xbuild-aux/calculate-schema-cksum4
-rwxr-xr-xbuild-aux/cksum-schema-check3
3 files changed, 7 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index bd9ee005e..69dbe3db6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -107,6 +107,7 @@ EXTRA_DIST = \
boot.sh \
build-aux/cccl \
build-aux/cksum-schema-check \
+ build-aux/calculate-schema-cksum \
build-aux/dist-docs \
build-aux/sodepends.pl \
build-aux/soexpand.pl \
diff --git a/build-aux/calculate-schema-cksum b/build-aux/calculate-schema-cksum
new file mode 100755
index 000000000..4ce9bf807
--- /dev/null
+++ b/build-aux/calculate-schema-cksum
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+schema=$1
+sed '/"cksum": *"[0-9][0-9]* [0-9][0-9]*",/d' $schema | cksum
diff --git a/build-aux/cksum-schema-check b/build-aux/cksum-schema-check
index 0fe37e4af..335e6456a 100755
--- a/build-aux/cksum-schema-check
+++ b/build-aux/cksum-schema-check
@@ -3,7 +3,8 @@
schema=$1
stamp=$2
-sum=`sed '/cksum/d' $schema | cksum`
+cksumcheckpath=`dirname $0`
+sum=`$cksumcheckpath/calculate-schema-cksum $schema`
expected=`sed -n 's/.*"cksum": "\(.*\)".*/\1/p' $schema`
if test "X$sum" = "X$expected"; then
touch $stamp