Ralph,

This patch is not correct. First it adds a significant overhead in terms of if in the critical path (3 more ifs per char in the output stream), and second it will generate random segfaults.

The test for the orte_xml_output can be centralized in just one if, reducing the overhead to one if per byte, or the whole loop can be duplicated and the test can be done only once per message.

For the second problem, the correct solution is a little bit more complex. One should check that k is small enough to replace one char by 5 without overwriting after the end of the output buffer.

  Thanks,
    george.

On May 26, 2009, at 20:43 , r...@osl.iu.edu wrote:

Author: rhc
Date: 2009-05-26 20:43:54 EDT (Tue, 26 May 2009)
New Revision: 21285
URL: https://svn.open-mpi.org/trac/ompi/changeset/21285

Log:
Modify the xml output per devel-list discussion with Greg Watson

Text files modified:
  trunk/orte/mca/iof/base/iof_base_output.c |    13 +++++++++++++
  1 files changed, 13 insertions(+), 0 deletions(-)

Modified: trunk/orte/mca/iof/base/iof_base_output.c
= = = = = = = = ======================================================================
--- trunk/orte/mca/iof/base/iof_base_output.c   (original)
+++ trunk/orte/mca/iof/base/iof_base_output.c 2009-05-26 20:43:54 EDT (Tue, 26 May 2009)
@@ -170,6 +170,19 @@
                    output->data[k++] = starttag[j];
                }
            }
+        } else if (orte_xml_output && '&' == data[i]) {
+            output->data[k++] = '&';
+            output->data[k++] = 'a';
+            output->data[k++] = 'm';
+            output->data[k++] = 'p';
+        } else if (orte_xml_output && '<' == data[i]) {
+            output->data[k++] = '&';
+            output->data[k++] = 'l';
+            output->data[k++] = 't';
+        } else if (orte_xml_output && '>' == data[i]) {
+            output->data[k++] = '&';
+            output->data[k++] = 'g';
+            output->data[k++] = 't';
        } else {
            output->data[k++] = data[i];
        }
_______________________________________________
svn mailing list
s...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/svn

Reply via email to