Fix #2478; deref of 0 pointer if jack_port_register fails.
authorCarl Hetherington <carl@carlh.net>
Wed, 17 Dec 2008 00:44:08 +0000 (00:44 +0000)
committerCarl Hetherington <carl@carlh.net>
Wed, 17 Dec 2008 00:44:08 +0000 (00:44 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@4328 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/midi++2/jack_midiport.cc

index 0464649989ace883dbb36b7f5acfab43bb3c12e3..5ebb55c325079b24e28b99d7cf19925343ba3578 100644 (file)
@@ -243,7 +243,9 @@ JACK_MidiPort::create_ports(const XMLNode& node)
                _jack_output_port = jack_port_register(_jack_client,
                                                       string(desc.tag).append("_out").c_str(),
                                                       JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0);
-               jack_midi_clear_buffer(jack_port_get_buffer(_jack_output_port, nframes));
+               if (_jack_output_port) {
+                       jack_midi_clear_buffer(jack_port_get_buffer(_jack_output_port, nframes));
+               }
                ret = ret && (_jack_output_port != NULL);
        }
        
@@ -251,7 +253,9 @@ JACK_MidiPort::create_ports(const XMLNode& node)
                _jack_input_port = jack_port_register(_jack_client,
                                                      string(desc.tag).append("_in").c_str(),
                                                      JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
-               jack_midi_clear_buffer(jack_port_get_buffer(_jack_input_port, nframes));
+               if (_jack_input_port) {
+                       jack_midi_clear_buffer(jack_port_get_buffer(_jack_input_port, nframes));
+               }
                ret = ret && (_jack_input_port != NULL);
        }