Chris Browne cbbrowne at lists.slony.info
Mon Aug 20 15:33:44 PDT 2007
Update of /home/cvsd/slony1/slony1-engine/tests/testlogship
In directory main.slony.info:/tmp/cvs-serv17163/testlogship

Modified Files:
      Tag: REL_1_2_STABLE
	ddl_updates.sql generate_dml.sh init_data.sql 
Log Message:
Add in some Very Evil C-like format strings to logshipping test to ensure
that any cases where code interprets them will lead to Gory Crashes.


Index: generate_dml.sh
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/tests/testlogship/generate_dml.sh,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -C2 -d -r1.1.2.4 -r1.1.2.5
*** generate_dml.sh	30 Jul 2007 22:33:15 -0000	1.1.2.4
--- generate_dml.sh	20 Aug 2007 22:33:42 -0000	1.1.2.5
***************
*** 43,50 ****
      rb=$(random_number 1 9)
      rc=$(random_number 1 9)
!     echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA
!     echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA
!     echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA
!     echo "INSERT INTO table5(numcol,realcol,ptcol,pathcol,polycol,circcol,ipcol,maccol,bitcol) values ('${ra}${rb}.${rc}','${ra}.${rb}${rc}','(${ra},${rb})','((${ra},${ra}),(${rb},${rb}),(${rc},${rc}),(${ra},${rc}))','((${ra},${rb}),(${rc},${ra}),(${rb},${rc}),(${rc},${rb}))','<(${ra},${rb}),${rc}>','192.168.${ra}.${rb}${rc}','08:00:2d:0${ra}:0${rb}:0${rc}',X'${ra}${rb}${rc}');" >> $GENDATA
      if [ ${i} -ge ${numrows} ]; then
        break;
--- 43,50 ----
      rb=$(random_number 1 9)
      rc=$(random_number 1 9)
!     echo "INSERT INTO table1(data) VALUES ('${txta} - Gross C format string: %d%05d%s%s%f%l%-72.52LG');" >> ${GENDATA}
!     echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> ${GENDATA}
!     echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> ${GENDATA}
!     echo "INSERT INTO table4(numcol,realcol,ptcol,pathcol,polycol,circcol,ipcol,maccol,bitcol) values ('${ra}${rb}.${rc}','${ra}.${rb}${rc}','(${ra},${rb})','((${ra},${ra}),(${rb},${rb}),(${rc},${rc}),(${ra},${rc}))','((${ra},${rb}),(${rc},${ra}),(${rb},${rc}),(${rc},${rb}))','<(${ra},${rb}),${rc}>','192.168.${ra}.${rb}${rc}','08:00:2d:0${ra}:0${rb}:0${rc}',X'${ra}${rb}${rc}');" >> ${GENDATA}
      if [ ${i} -ge ${numrows} ]; then
        break;

Index: init_data.sql
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/tests/testlogship/init_data.sql,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -d -r1.1.2.1 -r1.1.2.2
*** init_data.sql	20 Apr 2007 20:51:09 -0000	1.1.2.1
--- init_data.sql	20 Aug 2007 22:33:42 -0000	1.1.2.2
***************
*** 6,8 ****
  INSERT INTO table4(numcol,realcol,ptcol,pathcol,polycol,circcol,ipcol,maccol,bitcol) values ('74.0','7.40','(7,4)','((7,7),(4,4),(0,0),(7,0))','((7,4),(0,7),(4,0),(0,4))','<(7,4),0>','192.168.7.40','08:00:2d:07:04:00',X'740');
  
! INSERT INTO table4(numcol,realcol,ptcol,pathcol,polycol,circcol,ipcol,maccol,bitcol) values ('93.1','9.31','(9,3)','((9,9),(3,3),(1,1),(9,1))','((9,3),(1,9),(3,1),(1,3))','<(9,3),1>','192.168.9.31','08:00:2d:09:03:01',X'931');
\ No newline at end of file
--- 6,10 ----
  INSERT INTO table4(numcol,realcol,ptcol,pathcol,polycol,circcol,ipcol,maccol,bitcol) values ('74.0','7.40','(7,4)','((7,7),(4,4),(0,0),(7,0))','((7,4),(0,7),(4,0),(0,4))','<(7,4),0>','192.168.7.40','08:00:2d:07:04:00',X'740');
  
! INSERT INTO table4(numcol,realcol,ptcol,pathcol,polycol,circcol,ipcol,maccol,bitcol) values ('93.1','9.31','(9,3)','((9,9),(3,3),(1,1),(9,1))','((9,3),(1,9),(3,1),(1,3))','<(9,3),1>','192.168.9.31','08:00:2d:09:03:01',X'931');
! 
! insert into table1 (data) values ('Evil C Format String: %d%05d%s%f%G%p%n%ld');
\ No newline at end of file

Index: ddl_updates.sql
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/tests/testlogship/ddl_updates.sql,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -d -r1.1.2.1 -r1.1.2.2
*** ddl_updates.sql	20 Apr 2007 21:40:02 -0000	1.1.2.1
--- ddl_updates.sql	20 Aug 2007 22:33:42 -0000	1.1.2.2
***************
*** 3,4 ****
--- 3,6 ----
  alter table table4 add column newint integer;
  update table4 set newint = 42;
+ -- The following tries to exercise any cases where DDL statements might be evaluated by printf()
+ update table1 set data = data || '%d%s%s%s%s%f%l%d%s%f%p%d%f' where id in (select id from table1 order by id desc limit 150);
\ No newline at end of file



More information about the Slony1-commit mailing list