* Replacing strdup() with strndup() throughout
[monky] / src / openbsd.c
index 6685858..2655992 100644 (file)
@@ -7,7 +7,7 @@
  * Please see COPYING for details
  *
  * Copyright (c) 2007 Toni Spets
- * Copyright (c) 2005-2007 Brenden Matthews, Philip Kovacs, et. al.
+ * Copyright (c) 2005-2008 Brenden Matthews, Philip Kovacs, et. al.
  *     (see AUTHORS)
  * All rights reserved.
  *
@@ -545,7 +545,7 @@ __inline__ unsigned long long int rdtsc()
 
 /* return system frequency in MHz (use divisor=1) or GHz (use divisor=1000) */
 void get_freq_dynamic(char *p_client_buffer, size_t client_buffer_size,
-               char *p_format, int divisor)
+               const char *p_format, int divisor)
 {
 #if  defined(__i386) || defined(__x86_64)
        struct timezone tz;
@@ -575,8 +575,8 @@ void get_freq_dynamic(char *p_client_buffer, size_t client_buffer_size,
 }
 
 /* void */
-char get_freq(char *p_client_buffer, size_t client_buffer_size, char *p_format,
-               int divisor, unsigned int cpu)
+char get_freq(char *p_client_buffer, size_t client_buffer_size,
+               const char *p_format, int divisor, unsigned int cpu)
 {
        int freq = cpu;
        int mib[2] = { CTL_HW, HW_CPUSPEED };
@@ -716,7 +716,7 @@ inline void proc_find_top(struct process **cpu, struct process **mem)
        for (i = 0; i < n_processes; i++) {
                if (!((p[i].p_flag & P_SYSTEM)) && p[i].p_comm != NULL) {
                        processes[j].pid = p[i].p_pid;
-                       processes[j].name = strdup(p[i].p_comm);
+                       processes[j].name = strndup(p[i].p_comm, text_buffer_size);
                        processes[j].amount = 100.0 * p[i].p_pctcpu / FSCALE;
                        processes[j].totalmem = (float) (p[i].p_vm_rssize * pagesize /
                                (float) total_pages) * 100.0;
@@ -732,7 +732,7 @@ inline void proc_find_top(struct process **cpu, struct process **mem)
                tmp->pid = processes[i].pid;
                tmp->amount = processes[i].amount;
                tmp->totalmem = processes[i].totalmem;
-               tmp->name = strdup(processes[i].name);
+               tmp->name = strndup(processes[i].name, text_buffer_size);
 
                ttmp = mem[i];
                mem[i] = tmp;
@@ -750,7 +750,7 @@ inline void proc_find_top(struct process **cpu, struct process **mem)
                tmp->pid = processes[i].pid;
                tmp->amount = processes[i].amount;
                tmp->totalmem = processes[i].totalmem;
-               tmp->name = strdup(processes[i].name);
+               tmp->name = strndup(processes[i].name, text_buffer_size);
 
                ttmp = cpu[i];
                cpu[i] = tmp;