check malloc and strdup
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4129 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -161,8 +161,13 @@ int krb4_mic(char *msg) | ||||
|     MSG_DAT m_data; | ||||
|     char *tmp, *cmd; | ||||
|    | ||||
|     cmd = strdup(msg); | ||||
|     cmd = malloc(strlen(msg) + 1); | ||||
|      | ||||
|     if (cmd == NULL) { | ||||
| 	reply(451, "Failed to allocate memory."); | ||||
| 	return -1; | ||||
|     } | ||||
|  | ||||
|     len = base64_decode(msg, cmd); | ||||
|     if(len < 0){ | ||||
| 	reply(501, "Failed to decode base 64 data."); | ||||
| @@ -172,18 +177,22 @@ int krb4_mic(char *msg) | ||||
|     kerror = krb_rd_safe(cmd, len, &auth_dat.session,  | ||||
| 			 &his_addr, &ctrl_addr, &m_data); | ||||
|  | ||||
|     free(cmd); | ||||
|     if(kerror){ | ||||
| 	reply(535, "Error reading request: %s.", krb_get_err_text(kerror)); | ||||
| 	free(cmd); | ||||
| 	return -1; | ||||
|     } | ||||
|      | ||||
|     tmp = malloc(strlen(msg) + 1); | ||||
|     snprintf(tmp, strlen(msg) + 1, "%.*s", (int)m_data.app_length, m_data.app_data); | ||||
|     if (tmp == NULL) { | ||||
| 	reply(451, "Failed to allocate memory."); | ||||
| 	return -1; | ||||
|     } | ||||
|     snprintf(tmp, strlen(msg) + 1, "%.*s", | ||||
| 	     (int)m_data.app_length, m_data.app_data); | ||||
|     if(!strstr(tmp, "\r\n")) | ||||
| 	strcat(tmp, "\r\n"); | ||||
|     new_ftp_command(tmp); | ||||
|     free(cmd); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -202,8 +211,8 @@ int krb4_enc(char *msg) | ||||
|     MSG_DAT m_data; | ||||
|     char *tmp, *cmd; | ||||
|    | ||||
|     cmd = strdup(msg); | ||||
|      | ||||
|     cmd = malloc(strlen(msg) + 1); | ||||
|  | ||||
|     len = base64_decode(msg, cmd); | ||||
|     if(len < 0){ | ||||
| 	reply(501, "Failed to decode base 64 data."); | ||||
| @@ -212,19 +221,22 @@ int krb4_enc(char *msg) | ||||
|     } | ||||
|     kerror = krb_rd_priv(cmd, len, schedule, &auth_dat.session,  | ||||
| 			 &his_addr, &ctrl_addr, &m_data); | ||||
|     free(cmd); | ||||
|  | ||||
|     if(kerror){ | ||||
| 	reply(535, "Error reading request: %s.", krb_get_err_text(kerror)); | ||||
| 	free(cmd); | ||||
| 	return -1; | ||||
|     } | ||||
|      | ||||
|     tmp = strdup(msg); | ||||
|     tmp = malloc(strlen(msg) + 1); | ||||
|     if (tmp == NULL) { | ||||
| 	reply(451, "Failed to allocate memory."); | ||||
| 	return -1; | ||||
|     } | ||||
|     snprintf(tmp, strlen(msg) + 1, "%.*s", (int)m_data.app_length, m_data.app_data); | ||||
|     if(!strstr(tmp, "\r\n")) | ||||
| 	strcat(tmp, "\r\n"); | ||||
|     new_ftp_command(tmp); | ||||
|     free(cmd); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -141,6 +141,7 @@ get_xsockets (int *unix_socket, int *tcp_socket) | ||||
|      char *dir, *p; | ||||
|  | ||||
|      dir = strdup (X_UNIX_PATH); | ||||
|      errx (1, "strdup: out of memory"); | ||||
|      p = strrchr (dir, '/'); | ||||
|      if (p) | ||||
|        *p = '\0'; | ||||
| @@ -339,19 +340,29 @@ verify_and_remove_cookies (int fd, int sock) | ||||
|      npad = (4 - (n % 4)) % 4; | ||||
|      dpad = (4 - (d % 4)) % 4; | ||||
|      protocol_name = malloc(n + npad); | ||||
|      if (protocol_name == NULL) | ||||
| 	 return 1; | ||||
|      protocol_data = malloc(d + dpad); | ||||
|      if (protocol_data == NULL) | ||||
| 	 goto fail; | ||||
|      if (krb_net_read (fd, protocol_name, n + npad) != n + npad) | ||||
| 	  return 1; | ||||
| 	 goto fail; | ||||
|      if (krb_net_read (fd, protocol_data, d + dpad) != d + dpad) | ||||
| 	  return 1; | ||||
| 	 goto fail; | ||||
|      if (strncmp (protocol_name, COOKIE_TYPE, strlen(COOKIE_TYPE)) != 0) | ||||
| 	  return 1; | ||||
| 	 goto fail; | ||||
|      if (d != cookie_len || | ||||
| 	 memcmp (protocol_data, cookie, cookie_len) != 0) | ||||
| 	  return 1; | ||||
| 	 goto fail; | ||||
|      free (protocol_name); | ||||
|      free (protocol_data); | ||||
|      if (krb_net_write (sock, zeros, 6) != 6) | ||||
| 	  return 1; | ||||
|      return 0; | ||||
| fail: | ||||
|      free (protocol_name); | ||||
|      free (protocol_data); | ||||
|      return 1; | ||||
| } | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -601,6 +601,8 @@ main(int argc, char **argv) | ||||
| 	  if (p == NULL) | ||||
| 	      errx(1, "Who are you?"); | ||||
| 	  user = strdup (p->pw_name); | ||||
| 	  if (user == NULL) | ||||
| 	      errx (1, "strdup: out of memory"); | ||||
|      } | ||||
|      if (port == 0) | ||||
| 	 port = k_getportbyname ("kx", "tcp", htons(KX_PORT)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Assar Westerlund
					Assar Westerlund