diff options
Diffstat (limited to 'net/core/scm.c')
| -rw-r--r-- | net/core/scm.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/net/core/scm.c b/net/core/scm.c index 9cd4b0a01cd6..4f6a14babe5a 100644 --- a/net/core/scm.c +++ b/net/core/scm.c @@ -89,6 +89,12 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp)  		fpl->count_unix = 0;  		fpl->max = SCM_MAX_FD;  		fpl->user = NULL; +#if IS_ENABLED(CONFIG_UNIX) +		fpl->inflight = false; +		fpl->dead = false; +		fpl->edges = NULL; +		INIT_LIST_HEAD(&fpl->vertices); +#endif  	}  	fpp = &fpl->fp[fpl->count]; @@ -376,8 +382,14 @@ struct scm_fp_list *scm_fp_dup(struct scm_fp_list *fpl)  	if (new_fpl) {  		for (i = 0; i < fpl->count; i++)  			get_file(fpl->fp[i]); +  		new_fpl->max = new_fpl->count;  		new_fpl->user = get_uid(fpl->user); +#if IS_ENABLED(CONFIG_UNIX) +		new_fpl->inflight = false; +		new_fpl->edges = NULL; +		INIT_LIST_HEAD(&new_fpl->vertices); +#endif  	}  	return new_fpl;  }  |