]> rtime.felk.cvut.cz Git - frescor/forb.git/commitdiff
Do not free buffer when deserializing sequences
authorMichal Sojka <sojkam1@fel.cvut.cz>
Tue, 12 May 2009 21:57:43 +0000 (23:57 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Tue, 12 May 2009 21:59:52 +0000 (23:59 +0200)
This commit fixes crashes of FORB applications. The sequence variable
which is being deserialized might be uninitialized and therefore it is
not good idea to free the memory referenced by an uninitialized pointer
(seq->_buffer).

forb-idl/forb-idl-c-common.c

index bf1a1eb0a1c479161775b060a1292cb2c55304b4..1d8fd9578a171fce6b36d9b20f84d577591892a6 100644 (file)
@@ -201,7 +201,6 @@ cc_output_ser_seqence(OIDL_C_Info *ci,
                        "  CORBA_boolean ok;\n"
                        "  ok = CORBA_unsigned_long_deserialize(codec, &seq->_length);\n"
                        "  if (ok) {\n"
-                       "    if (CORBA_sequence_get_release(seq)) CORBA_free(seq->_buffer);\n"
                        "    seq->_buffer = %s_allocbuf(seq->_length);\n"
                        "    CORBA_sequence_set_release(seq, CORBA_TRUE);\n"
                        "  }\n"