lib/nfs/FileReader: set state=IDLE before invoking callback
				
					
				
			Fixes assertion failure if the callback fails.
This commit is contained in:
		
							
								
								
									
										2
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								NEWS
									
									
									
									
									
								
							| @@ -4,6 +4,8 @@ ver 0.21.23 (not yet released) | ||||
| * storage | ||||
|   - curl: fix corrupt "href" values in the presence of XML entities | ||||
|   - curl: unescape "href" values | ||||
| * input | ||||
|   - nfs: fix crash bug | ||||
| * decoder | ||||
|   - gme: adapt to API change in the upcoming version 0.7.0 | ||||
| * output | ||||
|   | ||||
| @@ -186,6 +186,8 @@ NfsFileReader::OpenCallback(nfsfh *_fh) noexcept | ||||
|  | ||||
| 	fh = _fh; | ||||
|  | ||||
| 	state = State::IDLE; | ||||
|  | ||||
| 	try { | ||||
| 		connection->Stat(fh, *this); | ||||
| 	} catch (...) { | ||||
| @@ -204,13 +206,13 @@ NfsFileReader::StatCallback(const struct stat *st) noexcept | ||||
| 	assert(fh != nullptr); | ||||
| 	assert(st != nullptr); | ||||
|  | ||||
| 	state = State::IDLE; | ||||
|  | ||||
| 	if (!S_ISREG(st->st_mode)) { | ||||
| 		OnNfsFileError(std::make_exception_ptr(std::runtime_error("Not a regular file"))); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	state = State::IDLE; | ||||
|  | ||||
| 	OnNfsFileOpen(st->st_size); | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann