139 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- sys/compat/linux/linux_ioctl.c.orig
 | |
| +++ sys/compat/linux/linux_ioctl.c
 | |
| @@ -253,6 +253,7 @@
 | |
|  		} else if ((args->cmd & 0xffff) == LINUX_HDIO_GET_GEO_BIG) {
 | |
|  			struct linux_hd_big_geometry hdbg;
 | |
|  
 | |
| +			memset(&hdbg, 0, sizeof(hdbg));
 | |
|  			hdbg.cylinders = fwcylinders;
 | |
|  			hdbg.heads = fwheads;
 | |
|  			hdbg.sectors = fwsectors;
 | |
| @@ -2477,6 +2478,7 @@
 | |
|  		printf("%s(): ioctl %d on %.*s\n", __func__,
 | |
|  		    args->cmd & 0xffff, LINUX_IFNAMSIZ, lifname);
 | |
|  #endif
 | |
| +		memset(ifname, 0, sizeof(ifname));
 | |
|  		ifp = ifname_linux_to_bsd(td, lifname, ifname);
 | |
|  		if (ifp == NULL)
 | |
|  			return (EINVAL);
 | |
| --- sys/compat/linux/linux_ipc.c.orig
 | |
| +++ sys/compat/linux/linux_ipc.c
 | |
| @@ -548,6 +548,9 @@
 | |
|  	register_t rval;
 | |
|  	int cmd, error;
 | |
|  
 | |
| +	memset(&linux_seminfo, 0, sizeof(linux_seminfo));
 | |
| +	memset(&linux_semid64, 0, sizeof(linux_semid64));
 | |
| +
 | |
|  	switch (args->cmd & ~LINUX_IPC_64) {
 | |
|  	case LINUX_IPC_RMID:
 | |
|  		cmd = IPC_RMID;
 | |
| @@ -702,6 +705,8 @@
 | |
|  	struct l_msqid64_ds linux_msqid64;
 | |
|  	struct msqid_ds bsd_msqid;
 | |
|  
 | |
| +	memset(&linux_msqid64, 0, sizeof(linux_msqid64));
 | |
| +
 | |
|  	bsd_cmd = args->cmd & ~LINUX_IPC_64;
 | |
|  	switch (bsd_cmd) {
 | |
|  	case LINUX_IPC_INFO:
 | |
| @@ -708,6 +713,7 @@
 | |
|  	case LINUX_MSG_INFO: {
 | |
|  		struct l_msginfo linux_msginfo;
 | |
|  
 | |
| +		memset(&linux_msginfo, 0, sizeof(linux_msginfo));
 | |
|  		/*
 | |
|  		 * XXX MSG_INFO uses the same data structure but returns different
 | |
|  		 * dynamic counters in msgpool, msgmap, and msgtql fields.
 | |
| @@ -833,6 +839,10 @@
 | |
|  	struct shmid_ds bsd_shmid;
 | |
|  	int error;
 | |
|  
 | |
| +	memset(&linux_shm_info, 0, sizeof(linux_shm_info));
 | |
| +	memset(&linux_shmid64, 0, sizeof(linux_shmid64));
 | |
| +	memset(&linux_shminfo64, 0, sizeof(linux_shminfo64));
 | |
| +
 | |
|  	switch (args->cmd & ~LINUX_IPC_64) {
 | |
|  
 | |
|  	case LINUX_IPC_INFO: {
 | |
| --- sys/dev/ath/if_ath_btcoex.c.orig
 | |
| +++ sys/dev/ath/if_ath_btcoex.c
 | |
| @@ -457,7 +457,7 @@
 | |
|  		 * pointer for us to use below in reclaiming the buffer;
 | |
|  		 * may want to be more defensive.
 | |
|  		 */
 | |
| -		outdata = malloc(outsize, M_TEMP, M_NOWAIT);
 | |
| +		outdata = malloc(outsize, M_TEMP, M_NOWAIT | M_ZERO);
 | |
|  		if (outdata == NULL) {
 | |
|  			error = ENOMEM;
 | |
|  			goto bad;
 | |
| @@ -466,6 +466,7 @@
 | |
|  	switch (id) {
 | |
|  		default:
 | |
|  			error = EINVAL;
 | |
| +			goto bad;
 | |
|  	}
 | |
|  	if (outsize < ad->ad_out_size)
 | |
|  		ad->ad_out_size = outsize;
 | |
| --- sys/dev/ath/if_ath_ioctl.c.orig
 | |
| +++ sys/dev/ath/if_ath_ioctl.c
 | |
| @@ -197,7 +197,7 @@
 | |
|  		 * pointer for us to use below in reclaiming the buffer;
 | |
|  		 * may want to be more defensive.
 | |
|  		 */
 | |
| -		outdata = malloc(outsize, M_TEMP, M_NOWAIT);
 | |
| +		outdata = malloc(outsize, M_TEMP, M_NOWAIT | M_ZERO);
 | |
|  		if (outdata == NULL) {
 | |
|  			error = ENOMEM;
 | |
|  			goto bad;
 | |
| --- sys/dev/ath/if_ath_lna_div.c.orig
 | |
| +++ sys/dev/ath/if_ath_lna_div.c
 | |
| @@ -187,7 +187,7 @@
 | |
|  		 * pointer for us to use below in reclaiming the buffer;
 | |
|  		 * may want to be more defensive.
 | |
|  		 */
 | |
| -		outdata = malloc(outsize, M_TEMP, M_NOWAIT);
 | |
| +		outdata = malloc(outsize, M_TEMP, M_NOWAIT | M_ZERO);
 | |
|  		if (outdata == NULL) {
 | |
|  			error = ENOMEM;
 | |
|  			goto bad;
 | |
| @@ -196,6 +196,7 @@
 | |
|  	switch (id) {
 | |
|  		default:
 | |
|  			error = EINVAL;
 | |
| +			goto bad;
 | |
|  	}
 | |
|  	if (outsize < ad->ad_out_size)
 | |
|  		ad->ad_out_size = outsize;
 | |
| --- sys/dev/ath/if_ath_spectral.c.orig
 | |
| +++ sys/dev/ath/if_ath_spectral.c
 | |
| @@ -212,7 +212,7 @@
 | |
|  		 * pointer for us to use below in reclaiming the buffer;
 | |
|  		 * may want to be more defensive.
 | |
|  		 */
 | |
| -		outdata = malloc(outsize, M_TEMP, M_NOWAIT);
 | |
| +		outdata = malloc(outsize, M_TEMP, M_NOWAIT | M_ZERO);
 | |
|  		if (outdata == NULL) {
 | |
|  			error = ENOMEM;
 | |
|  			goto bad;
 | |
| @@ -275,6 +275,7 @@
 | |
|  		break;
 | |
|  		default:
 | |
|  			error = EINVAL;
 | |
| +			goto bad;
 | |
|  	}
 | |
|  	if (outsize < ad->ad_out_size)
 | |
|  		ad->ad_out_size = outsize;
 | |
| --- sys/netinet/tcp_usrreq.c.orig
 | |
| +++ sys/netinet/tcp_usrreq.c
 | |
| @@ -1495,7 +1495,9 @@
 | |
|  		return (error);
 | |
|  	} else if ((sopt->sopt_dir == SOPT_GET) && 
 | |
|  	    (sopt->sopt_name == TCP_FUNCTION_BLK)) {
 | |
| -		strcpy(fsn.function_set_name, tp->t_fb->tfb_tcp_block_name);
 | |
| +		strncpy(fsn.function_set_name, tp->t_fb->tfb_tcp_block_name,
 | |
| +		    TCP_FUNCTION_NAME_LEN_MAX);
 | |
| +		fsn.function_set_name[TCP_FUNCTION_NAME_LEN_MAX - 1] = '\0';
 | |
|  		fsn.pcbcnt = tp->t_fb->tfb_refcnt;
 | |
|  		INP_WUNLOCK(inp);
 | |
|  		error = sooptcopyout(sopt, &fsn, sizeof fsn);
 |