diff -uNr NSClient-1.07.0.orig/UnixSource/check_nt.c NSClient-1.07.0/UnixSource/check_nt.c --- NSClient-1.07.0.orig/UnixSource/check_nt.c Sun Feb 24 14:55:48 2002 +++ NSClient-1.07.0/UnixSource/check_nt.c Wed Nov 27 12:10:46 2002 @@ -95,7 +95,7 @@ int updays=0; int uphours=0; int upminutes=0; - req_password=strscpy(req_password,"None"); + asprintf(&req_password,"None"); if(process_arguments(argc,argv)==ERROR) usage("Could not parse arguments\n"); @@ -108,11 +108,11 @@ if (vars_to_check==CHECK_CLIENTVERSION) { - send_buffer = strscpy(send_buffer,strcat(req_password,"&1")); + asprintf(&send_buffer,strcat(req_password,"&1")); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if(result!=STATE_OK) return result; - output_message = strscpy(output_message,recv_buffer); + asprintf(&output_message,recv_buffer); return_code=STATE_OK; } else if(vars_to_check==CHECK_CPULOAD){ @@ -121,14 +121,14 @@ if (strtolarray(&lvalue_list,value_list,",")==TRUE) { // -l parameters is present with only integers return_code=STATE_OK; - temp_string = strscpy(temp_string,"CPU Load"); + asprintf(&temp_string,"CPU Load"); while (lvalue_list[0+offset]>0 && lvalue_list[0+offset]<=17280 && lvalue_list[1+offset]>=0 && lvalue_list[1+offset]<=100 && lvalue_list[2+offset]>=0 && lvalue_list[2+offset]<=100) { // loop until one of the parameters is wrong or not present // Send request and retrieve data - send_buffer = ssprintf(send_buffer,"%s&2&%lu",req_password,lvalue_list[0+offset]); + asprintf(&send_buffer,"%s&2&%lu",req_password,lvalue_list[0+offset]); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if(result!=STATE_OK) return result; @@ -146,27 +146,27 @@ else if(utilization >= lvalue_list[1+offset] && return_code10) { // we had at least on loop - output_message = ssprintf(output_message,"%s",temp_string); + asprintf(&output_message,"%s",temp_string); } else - output_message = strscpy(output_message,"not enough values for -l parameters"); + asprintf(&output_message,"%s","not enough values for -l parameters"); } else - output_message = strscpy(output_message,"wrong -l parameter."); + asprintf(&output_message,"wrong -l parameter."); } else - output_message = strscpy(output_message,"missing -l parameters"); + asprintf(&output_message,"missing -l parameters"); } else if(vars_to_check==CHECK_UPTIME){ - send_buffer = strscpy(send_buffer,strcat(req_password,"&3")); + asprintf(&send_buffer,strcat(req_password,"&3")); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if(result!=STATE_OK) return result; @@ -180,7 +180,7 @@ updays = uptime / 86400; uphours = (uptime % 86400) / 3600; upminutes = ((uptime % 86400) % 3600) / 60; - output_message = ssprintf(output_message,"System Uptime : %u day(s) %u hour(s) %u minute(s)",updays,uphours, upminutes); + asprintf(&output_message,"System Uptime : %u day(s) %u hour(s) %u minute(s)",updays,uphours, upminutes); return_code=STATE_OK; } @@ -189,7 +189,7 @@ return_code=STATE_UNKNOWN; if (check_value_list==TRUE) { if (strlen(value_list)==1) { - send_buffer = ssprintf(send_buffer,"%s&4&%s", req_password, value_list); + asprintf(&send_buffer,"%s&4&%s", req_password, value_list); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if(result!=STATE_OK) return result; @@ -204,7 +204,7 @@ percent_used_space = ((total_disk_space - free_disk_space) / total_disk_space) * 100; if (free_disk_space>=0) { - temp_string = ssprintf(temp_string,"%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)", + asprintf(&temp_string,"%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)", value_list, total_disk_space / 1073741824, (total_disk_space - free_disk_space) / 1073741824, percent_used_space, free_disk_space / 1073741824, (free_disk_space / total_disk_space)*100); @@ -216,18 +216,18 @@ else return_code=STATE_OK; - output_message = ssprintf(output_message,"%s",temp_string); + asprintf(&output_message,"%s",temp_string); } else { - output_message = ssprintf(output_message,"Free disk space : Invalid drive "); + asprintf(&output_message,"Free disk space : Invalid drive "); return_code=STATE_UNKNOWN; } } else - output_message = strscpy(output_message,"wrong -l argument"); + asprintf(&output_message,"wrong -l argument"); } else - output_message = strscpy(output_message,"missing -l parameters"); + asprintf(&output_message,"missing -l parameters"); } @@ -235,7 +235,7 @@ if (check_value_list==TRUE) { preparelist(value_list); // replace , between services with & to send the request - send_buffer = ssprintf(send_buffer,"%s&%u&%s&%s", req_password,(vars_to_check==CHECK_SERVICESTATE)?5:6, + asprintf(&send_buffer,"%s&%u&%s&%s", req_password,(vars_to_check==CHECK_SERVICESTATE)?5:6, (show_all==TRUE)?"ShowAll":"ShowFail",value_list); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if(result!=STATE_OK) @@ -247,15 +247,15 @@ } return_code=atoi(strtok(recv_buffer,"&")); temp_string=strtok(NULL,"&"); - output_message = ssprintf(output_message, "%s",temp_string); + asprintf(&output_message, "%s",temp_string); } else - output_message = strscpy(output_message,"No service/process specified"); + asprintf(&output_message,"No service/process specified"); } else if(vars_to_check==CHECK_MEMUSE) { - send_buffer = ssprintf(send_buffer,"%s&7", req_password); + asprintf(&send_buffer,"%s&7", req_password); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; @@ -268,7 +268,7 @@ mem_commitLimit=atof(strtok(recv_buffer,"&")); mem_commitByte=atof(strtok(NULL,"&")); percent_used_space = (mem_commitByte / mem_commitLimit) * 100; - output_message = ssprintf(output_message,"Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)", + asprintf(&output_message,"Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)", mem_commitLimit / 1048576, mem_commitByte / 1048567, percent_used_space, (mem_commitLimit - mem_commitByte) / 1048576, (mem_commitLimit - mem_commitByte) / mem_commitLimit * 100); @@ -285,7 +285,7 @@ if (check_value_list==TRUE) { preparelist(value_list); // replace , between services with & to send the request - send_buffer = ssprintf(send_buffer,"%s&8&%s", req_password,value_list); + asprintf(&send_buffer,"%s&8&%s", req_password,value_list); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; @@ -299,9 +299,9 @@ description = strtok(NULL,"&"); counter_value = atof(recv_buffer); if (description == NULL) - output_message = ssprintf(output_message, "%.f", counter_value); + asprintf(&output_message, "%.f", counter_value); else - output_message = ssprintf(output_message, description, counter_value); + asprintf(&output_message, description, counter_value); if (critical_value > warning_value) { // Normal thresholds @@ -324,7 +324,7 @@ } else { - output_message = strscpy(output_message,"No counter specified"); + asprintf(&output_message,"No counter specified"); result=STATE_UNKNOWN; } } @@ -332,7 +332,7 @@ if (check_value_list==TRUE) { preparelist(value_list); // replace , between services with & to send the request - send_buffer = ssprintf(send_buffer,"%s&9&%s", req_password,value_list); + asprintf(&send_buffer,"%s&9&%s", req_password,value_list); result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; @@ -344,7 +344,7 @@ age_in_minutes = atoi(strtok(recv_buffer,"&")); description = strtok(NULL,"&"); - output_message = ssprintf(output_message, description); + asprintf(&output_message, description); if (critical_value > warning_value) { // Normal thresholds @@ -367,7 +367,7 @@ } else { - output_message = strscpy(output_message,"No file specified"); + asprintf(&output_message,"No file specified"); result=STATE_UNKNOWN; } } @@ -447,7 +447,7 @@ server_address=optarg; break; case 's': /* password */ - req_password=strscpy(req_password,optarg); + asprintf(&req_password,optarg); break; case 'p': /* port */ if (is_intnonneg(optarg)) @@ -480,7 +480,7 @@ return ERROR; break; case 'l': /* value list */ - value_list=strscpy(value_list,optarg); + asprintf(&value_list,optarg); check_value_list=TRUE; break; case 'w': /* warning threshold */