diff options
Diffstat (limited to 'zebra/zapi_msg.c')
| -rw-r--r-- | zebra/zapi_msg.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c index a74c6bc4bf..008fc8f066 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c @@ -3087,12 +3087,13 @@ static void zserv_write_incoming(struct stream *orig, uint16_t command)  	copy = stream_dup(orig);  	stream_set_getp(copy, 0); -	zserv_privs.change(ZPRIVS_RAISE);  	snprintf(fname, MAXPATHLEN, "%s/%u", DAEMON_VTY_DIR, command); -	fd = open(fname, O_CREAT | O_WRONLY | O_EXCL, 0644); + +	frr_elevate_privs(&zserv_privs) { +		fd = open(fname, O_CREAT | O_WRONLY | O_EXCL, 0644); +	}  	stream_flush(copy, fd);  	close(fd); -	zserv_privs.change(ZPRIVS_LOWER);  	stream_free(copy);  }  #endif  | 
