Zero pointer trouble

"Rasmus Erfurt" <[email protected]> Fri, 2 Mar 2007 12:58:37 +0100
Newsgroups gmane.comp.gnu.ccrtp.devel
Message-ID <[email protected]>
Hi,

I had some problems when trying to receive 3 audio streams (SSRC's) in
the same session. Once every 5-10 seconds, the code would segfault due
to recvLast pointer = NULL.

I have attached a diff that works around the problem.

/R

_______________________________________________
Ccrtp-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/ccrtp-devel
ccrtp.diff (text/plain, 709 B)
--- ccrtp-1.5.1/src/incqueue.cpp	2006-12-31 14:12:33.000000000 +0100
+++ ccrtp-1.5.1.new/src/incqueue.cpp	2007-03-02 11:15:17.000000000 +0100
@@ -439,10 +439,18 @@
 			srcLink->getLast()->setSrcNext(packetLink);
 			packetLink->setSrcPrev(srcLink->getLast());
 			srcLink->setLast(packetLink);
+/* added by RER who was experiencing 0 pointers to recvLast */
+			if ( recvLast ) {
+				recvLast->setNext(packetLink);
+				packetLink->setPrev(recvLast);
+			}
+			recvLast = packetLink;
+#if 0			
 			// the last packet in the global queue
 			recvLast->setNext(packetLink);
 			packetLink->setPrev(recvLast);
 			recvLast = packetLink;
+#endif
 		}
 	}
 	// account the insertion of this packet into the queue