9pfs: fix potential segfault during walk
If the call to fid_to_qid() returns an error, we will call v9fs_path_free()
on uninitialized paths.
It is a regression introduced by the following commit:
56f101ecce 9pfs: handle walk of ".." in the root directory
Let's fix this by initializing dpath and path before calling fid_to_qid().
Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
[groug: updated the changelog to indicate this is regression and to provide
        the offending commit SHA1]
Signed-off-by: Greg Kurz <groug@kaod.org>
			
			
This commit is contained in:
		
							parent
							
								
									557a4cc04a
								
							
						
					
					
						commit
						13fd08e631
					
				| 
						 | 
				
			
			@ -1333,13 +1333,14 @@ static void v9fs_walk(void *opaque)
 | 
			
		|||
        goto out_nofid;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    v9fs_path_init(&dpath);
 | 
			
		||||
    v9fs_path_init(&path);
 | 
			
		||||
 | 
			
		||||
    err = fid_to_qid(pdu, fidp, &qid);
 | 
			
		||||
    if (err < 0) {
 | 
			
		||||
        goto out;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    v9fs_path_init(&dpath);
 | 
			
		||||
    v9fs_path_init(&path);
 | 
			
		||||
    /*
 | 
			
		||||
     * Both dpath and path initially poin to fidp.
 | 
			
		||||
     * Needed to handle request with nwnames == 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue