mirror of
				https://review.coreboot.org/flashrom.git
				synced 2025-10-31 05:10:41 +01:00 
			
		
		
		
	tests: Fix mode_t argument conversion for va_arg
Patch fixes the error: error: second argument to 'va_arg' is of promotable type 'mode_t' (aka 'unsigned short'); this va_arg has undefined behavior because arguments will be promoted to 'int' [-Werror,-Wvarargs] Discovered and tested on: FreeBSD clang version 13.0.0 gcc 8.3.0 "cc 8.3 [DragonFly] Release/2019-02-22" Also tested on: gcc 11.3.0 "cc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0" Change-Id: I95b7c8dafdf4e7664c48a952acd7f8eaedb59ba7 Signed-off-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/74202 Reviewed-by: Peter Marheine <pmarheine@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Thomas Heijligen <src@posteo.de>
This commit is contained in:
		| @@ -101,40 +101,40 @@ static int mock_open(const char *pathname, int flags, mode_t mode) | |||||||
| int __wrap_open(const char *pathname, int flags, ...) | int __wrap_open(const char *pathname, int flags, ...) | ||||||
| { | { | ||||||
| 	LOG_ME; | 	LOG_ME; | ||||||
| 	mode_t mode = 0; | 	int mode = 0; | ||||||
| 	if (flags & O_CREAT) { | 	if (flags & O_CREAT) { | ||||||
| 		va_list ap; | 		va_list ap; | ||||||
| 		va_start(ap, flags); | 		va_start(ap, flags); | ||||||
| 		mode = va_arg(ap, mode_t); | 		mode = va_arg(ap, int); | ||||||
| 		va_end(ap); | 		va_end(ap); | ||||||
| 	} | 	} | ||||||
| 	return mock_open(pathname, flags, mode); | 	return mock_open(pathname, flags, (mode_t) mode); | ||||||
| } | } | ||||||
|  |  | ||||||
| int __wrap_open64(const char *pathname, int flags, ...) | int __wrap_open64(const char *pathname, int flags, ...) | ||||||
| { | { | ||||||
| 	LOG_ME; | 	LOG_ME; | ||||||
| 	mode_t mode = 0; | 	int mode = 0; | ||||||
| 	if (flags & O_CREAT) { | 	if (flags & O_CREAT) { | ||||||
| 		va_list ap; | 		va_list ap; | ||||||
| 		va_start(ap, flags); | 		va_start(ap, flags); | ||||||
| 		mode = va_arg(ap, mode_t); | 		mode = va_arg(ap, int); | ||||||
| 		va_end(ap); | 		va_end(ap); | ||||||
| 	} | 	} | ||||||
| 	return mock_open(pathname, flags, mode); | 	return mock_open(pathname, flags, (mode_t) mode); | ||||||
| } | } | ||||||
|  |  | ||||||
| int __wrap___open64_2(const char *pathname, int flags, ...) | int __wrap___open64_2(const char *pathname, int flags, ...) | ||||||
| { | { | ||||||
| 	LOG_ME; | 	LOG_ME; | ||||||
| 	mode_t mode = 0; | 	int mode = 0; | ||||||
| 	if (flags & O_CREAT) { | 	if (flags & O_CREAT) { | ||||||
| 		va_list ap; | 		va_list ap; | ||||||
| 		va_start(ap, flags); | 		va_start(ap, flags); | ||||||
| 		mode = va_arg(ap, mode_t); | 		mode = va_arg(ap, int); | ||||||
| 		va_end(ap); | 		va_end(ap); | ||||||
| 	} | 	} | ||||||
| 	return mock_open(pathname, flags, mode); | 	return mock_open(pathname, flags, (mode_t) mode); | ||||||
| } | } | ||||||
|  |  | ||||||
| int __wrap_ioctl(int fd, unsigned long int request, ...) | int __wrap_ioctl(int fd, unsigned long int request, ...) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Anastasia Klimchuk
					Anastasia Klimchuk