libexpr: Make unsafeGetAttrPos not crash on noPos
Currently e.g. `builtins.unsafeGetAttrPos "abort" builtins` will eventually segfault because pos->file is an unset Symbol. Found by afl-fuzz.
This commit is contained in:
		
							parent
							
								
									3fbaa230a2
								
							
						
					
					
						commit
						af86132e1a
					
				
					 3 changed files with 3 additions and 1 deletions
				
			
		|  | @ -628,7 +628,7 @@ void EvalState::mkThunk_(Value & v, Expr * expr) | ||||||
| 
 | 
 | ||||||
| void EvalState::mkPos(Value & v, Pos * pos) | void EvalState::mkPos(Value & v, Pos * pos) | ||||||
| { | { | ||||||
|     if (pos) { |     if (pos && pos->file.set()) { | ||||||
|         mkAttrs(v, 3); |         mkAttrs(v, 3); | ||||||
|         mkString(*allocAttr(v, sFile), pos->file); |         mkString(*allocAttr(v, sFile), pos->file); | ||||||
|         mkInt(*allocAttr(v, sLine), pos->line); |         mkInt(*allocAttr(v, sLine), pos->line); | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								tests/lang/eval-okay-getattrpos-undefined.exp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tests/lang/eval-okay-getattrpos-undefined.exp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | null | ||||||
							
								
								
									
										1
									
								
								tests/lang/eval-okay-getattrpos-undefined.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tests/lang/eval-okay-getattrpos-undefined.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | builtins.unsafeGetAttrPos "abort" builtins | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue