[Issue#] SSDWSSP-107
[Problem] Issues detected by Prevent
[Cause] N/A
[Solution] Please see comments below
[Verification] Build and run
Changes:
* Added a sanity check for new_pwd_len in (prevent #42100)
* Added a check for result of setuid in security server test case
(prevent #42102)
* Fixed a bug in one of the test cases (comparing smack labels)
(prevent #43435)
* Fixed a bug where one error condition was not handled properly, which in turn
led to double free.
Change-Id: I54562981cf5e1201f8f62852da5cb6b3473df138
memset(recved_argv, 0, sizeof(char *) * argcnum);
retval = recv_launch_tool_request(client_sockfd, argcnum -1, recved_argv);
- if(retval == SECURITY_SERVER_ERROR_RECV_FAILED)
+ if(retval == SECURITY_SERVER_ERROR_RECV_FAILED || retval == SECURITY_SERVER_ERROR_OUT_OF_MEMORY)
{
SEC_SVR_DBG("%s", "Receiving request failed");
recved_argv = NULL;
goto error;
}
retval = read(sockfd, &new_pwd_len, sizeof(char));
- if(retval < sizeof(char) || new_pwd_len > SECURITY_SERVER_MAX_PASSWORD_LEN)
+ if(retval < sizeof(char) || new_pwd_len > SECURITY_SERVER_MAX_PASSWORD_LEN || new_pwd_len < 0)
{
SEC_SVR_DBG("Server Error: new password length recieve failed: %d, %d", retval, new_pwd_len);
retval = send_generic_response(sockfd,