Cygwin: FIFO: avoid crashes when cloning a client
fhandler_fifo::clone called fhandler_base::clone on each client fhandler. But those fhandlers are actually fhandler_fifo objects, so when fhandler_base::clone calls copyto, it's actually fhandler_fifo::copyto that gets called. This can lead to mysterious crashes. Fix this by simply calling clone (which translates to fhandler_fifo::clone) on each client fhandler.
This commit is contained in:
		
				
					committed by
					
						 Corinna Vinschen
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							ee394c311e
						
					
				
				
					commit
					40db74128a
				
			| @@ -1316,7 +1316,7 @@ public: | |||||||
|     fhandler_fifo *fhf = new (ptr) fhandler_fifo (ptr); |     fhandler_fifo *fhf = new (ptr) fhandler_fifo (ptr); | ||||||
|     copyto (fhf); |     copyto (fhf); | ||||||
|     for (int i = 0; i < nclients; i++) |     for (int i = 0; i < nclients; i++) | ||||||
|       fhf->client[i].fh = client[i].fh->fhandler_base::clone (); |       fhf->client[i].fh = client[i].fh->clone (); | ||||||
|     return fhf; |     return fhf; | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user