Revision 363a37d5 slirp/tcp_subr.c

b/slirp/tcp_subr.c
629 629
	struct mbuf *m;
630 630
{
631 631
	u_int n1, n2, n3, n4, n5, n6;
632
	char buff[256];
632
        char buff[257];
633 633
	u_int32_t laddr;
634 634
	u_int lport;
635 635
	char *bptr;
......
673 673
						}
674 674
					}
675 675
				}
676
				so_rcv->sb_cc = sprintf(so_rcv->sb_data, "%d,%d\r\n", n1, n2);
676
                                so_rcv->sb_cc = snprintf(so_rcv->sb_data,
677
                                                         so_rcv->sb_datalen,
678
                                                         "%d,%d\r\n", n1, n2);
677 679
				so_rcv->sb_rptr = so_rcv->sb_data;
678 680
				so_rcv->sb_wptr = so_rcv->sb_data + so_rcv->sb_cc;
679 681
			}
......
1007 1009
			n4 =  (laddr & 0xff);
1008 1010

  
1009 1011
			m->m_len = bptr - m->m_data; /* Adjust length */
1010
			m->m_len += sprintf(bptr,"ORT %d,%d,%d,%d,%d,%d\r\n%s",
1011
					    n1, n2, n3, n4, n5, n6, x==7?buff:"");
1012
                        m->m_len += snprintf(bptr, m->m_hdr.mh_size - m->m_len,
1013
                                             "ORT %d,%d,%d,%d,%d,%d\r\n%s",
1014
                                             n1, n2, n3, n4, n5, n6, x==7?buff:"");
1012 1015
			return 1;
1013 1016
		} else if ((bptr = (char *)strstr(m->m_data, "27 Entering")) != NULL) {
1014 1017
			/*
......
1038 1041
			n4 =  (laddr & 0xff);
1039 1042

  
1040 1043
			m->m_len = bptr - m->m_data; /* Adjust length */
1041
			m->m_len += sprintf(bptr,"27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s",
1042
					    n1, n2, n3, n4, n5, n6, x==7?buff:"");
1044
			m->m_len += snprintf(bptr, m->m_hdr.mh_size - m->m_len,
1045
                                             "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s",
1046
                                             n1, n2, n3, n4, n5, n6, x==7?buff:"");
1043 1047

  
1044 1048
			return 1;
1045 1049
		}
......
1062 1066
		}
1063 1067
		if (m->m_data[m->m_len-1] == '\0' && lport != 0 &&
1064 1068
		    (so = solisten(0, so->so_laddr.s_addr, htons(lport), SS_FACCEPTONCE)) != NULL)
1065
			m->m_len = sprintf(m->m_data, "%d", ntohs(so->so_fport))+1;
1069
                    m->m_len = snprintf(m->m_data, m->m_hdr.mh_size, "%d",
1070
                                        ntohs(so->so_fport)) + 1;
1066 1071
		return 1;
1067 1072

  
1068 1073
	 case EMU_IRC:
......
1079 1084
				return 1;
1080 1085

  
1081 1086
			m->m_len = bptr - m->m_data; /* Adjust length */
1082
			m->m_len += sprintf(bptr, "DCC CHAT chat %lu %u%c\n",
1083
			     (unsigned long)ntohl(so->so_faddr.s_addr),
1084
			     ntohs(so->so_fport), 1);
1087
                        m->m_len += snprintf(bptr, m->m_hdr.mh_size,
1088
                                             "DCC CHAT chat %lu %u%c\n",
1089
                                             (unsigned long)ntohl(so->so_faddr.s_addr),
1090
                                             ntohs(so->so_fport), 1);
1085 1091
		} else if (sscanf(bptr, "DCC SEND %256s %u %u %u", buff, &laddr, &lport, &n1) == 4) {
1086 1092
			if ((so = solisten(0, htonl(laddr), htons(lport), SS_FACCEPTONCE)) == NULL)
1087 1093
				return 1;
1088 1094

  
1089 1095
			m->m_len = bptr - m->m_data; /* Adjust length */
1090
			m->m_len += sprintf(bptr, "DCC SEND %s %lu %u %u%c\n",
1091
			      buff, (unsigned long)ntohl(so->so_faddr.s_addr),
1092
			      ntohs(so->so_fport), n1, 1);
1096
                        m->m_len += snprintf(bptr, m->m_hdr.mh_size,
1097
                                             "DCC SEND %s %lu %u %u%c\n", buff,
1098
                                             (unsigned long)ntohl(so->so_faddr.s_addr),
1099
                                             ntohs(so->so_fport), n1, 1);
1093 1100
		} else if (sscanf(bptr, "DCC MOVE %256s %u %u %u", buff, &laddr, &lport, &n1) == 4) {
1094 1101
			if ((so = solisten(0, htonl(laddr), htons(lport), SS_FACCEPTONCE)) == NULL)
1095 1102
				return 1;
1096 1103

  
1097 1104
			m->m_len = bptr - m->m_data; /* Adjust length */
1098
			m->m_len += sprintf(bptr, "DCC MOVE %s %lu %u %u%c\n",
1099
			      buff, (unsigned long)ntohl(so->so_faddr.s_addr),
1100
			      ntohs(so->so_fport), n1, 1);
1105
                        m->m_len += snprintf(bptr, m->m_hdr.mh_size,
1106
                                             "DCC MOVE %s %lu %u %u%c\n", buff,
1107
                                             (unsigned long)ntohl(so->so_faddr.s_addr),
1108
                                             ntohs(so->so_fport), n1, 1);
1101 1109
		}
1102 1110
		return 1;
1103 1111

  
......
1285 1293

  
1286 1294
		/* FALLTHROUGH */
1287 1295
	case CTL_ALIAS:
1288
	  sb->sb_cc = sprintf(sb->sb_wptr,
1289
			      "Error: No application configured.\r\n");
1296
          sb->sb_cc = snprintf(sb->sb_wptr, sb->sb_datalen - (sb->sb_wptr - sb->sb_data),
1297
                               "Error: No application configured.\r\n");
1290 1298
	  sb->sb_wptr += sb->sb_cc;
1291 1299
	  return(0);
1292 1300

  

Also available in: Unified diff