~ubuntu-dev/ubuntu/lucid/zabbix/lucid-201002110857

« back to all changes in this revision

Viewing changes to src/libs/zbxsysinfo/solaris/swap.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Ablassmeier
  • Date: 2007-07-02 09:06:51 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070702090651-8l6fl3fjw9rh6l2u
Tags: 1:1.4.1-2
Add patch from SVN in order to fix Incorrect processing of character '%'
in user parameters and remote commands.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
18
**/
19
19
 
20
 
#include "config.h"
21
 
 
22
20
#include "common.h"
 
21
 
23
22
#include "sysinfo.h"
24
23
 
25
24
#include "md5.h"
125
124
        init_result(result);
126
125
        init_result(&result_tmp);
127
126
 
128
 
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
129
 
                return  SYSINFO_RET_FAIL;
 
127
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
128
                !(result_tmp.type & AR_UINT64))
 
129
                        return  SYSINFO_RET_FAIL;
130
130
        tot_val = result_tmp.ui64;
131
131
 
132
132
        /* Check fot division by zero */
136
136
                return  SYSINFO_RET_FAIL;
137
137
        }
138
138
 
139
 
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
140
 
                return  SYSINFO_RET_FAIL;
 
139
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
140
                !(result_tmp.type & AR_UINT64))
 
141
                        return  SYSINFO_RET_FAIL;
141
142
        free_val = result_tmp.ui64;
142
143
 
143
144
        free_result(&result_tmp);
158
159
        init_result(result);
159
160
        init_result(&result_tmp);
160
161
 
161
 
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
162
 
                return  SYSINFO_RET_FAIL;
 
162
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
163
                !(result_tmp.type & AR_UINT64))
 
164
                        return  SYSINFO_RET_FAIL;
163
165
        tot_val = result_tmp.ui64;
164
166
 
165
167
        /* Check fot division by zero */
169
171
                return  SYSINFO_RET_FAIL;
170
172
        }
171
173
 
172
 
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
173
 
                return  SYSINFO_RET_FAIL;
 
174
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
175
                !(result_tmp.type & AR_UINT64))
 
176
                        return  SYSINFO_RET_FAIL;
174
177
        free_val = result_tmp.ui64;
175
178
 
176
179
        free_result(&result_tmp);
194
197
        {
195
198
                {"total",       SYSTEM_SWAP_TOTAL},
196
199
                {"free",        SYSTEM_SWAP_FREE},
197
 
                {"pfree",       SYSTEM_SWAP_PFREE},
198
 
                {"pused",       SYSTEM_SWAP_PUSED},
 
200
                {"pfree",       SYSTEM_SWAP_PFREE},
 
201
                {"pused",       SYSTEM_SWAP_PUSED},
199
202
                {0,             0}
200
203
        };
201
204
 
212
215
                return SYSINFO_RET_FAIL;
213
216
        }
214
217
 
215
 
        if(get_param(param, 1, swapdev, MAX_STRING_LEN) != 0)
 
218
        if(get_param(param, 1, swapdev, sizeof(swapdev)) != 0)
216
219
        {
217
220
                return SYSINFO_RET_FAIL;
218
221
        }
220
223
        if(swapdev[0] == '\0')
221
224
        {
222
225
                /* default parameter */
223
 
                sprintf(swapdev, "all");
 
226
                zbx_snprintf(swapdev, sizeof(swapdev), "all");
224
227
        }
225
228
 
226
 
        if(strncmp(swapdev, "all", MAX_STRING_LEN))
 
229
        if(strncmp(swapdev, "all", sizeof(swapdev)))
227
230
        {
228
231
                return SYSINFO_RET_FAIL;
229
232
        }
230
233
        
231
 
        if(get_param(param, 2, mode, MAX_STRING_LEN) != 0)
 
234
        if(get_param(param, 2, mode, sizeof(mode)) != 0)
232
235
        {
233
236
                mode[0] = '\0';
234
237
        }
236
239
        if(mode[0] == '\0')
237
240
        {
238
241
                /* default parameter */
239
 
                sprintf(mode, "free");
 
242
                zbx_snprintf(mode, sizeof(mode), "free");
240
243
        }
241
244
 
242
245
        for(i=0; fl[i].mode!=0; i++)
311
314
                cpu = (cpu_stat_t*) k->ks_data;
312
315
                if(swapin)
313
316
                {
314
 
                   /* uint_t   swapin;          // swapins */
 
317
                   /* uint_t   swapin;          */ /* swapins */
315
318
                   (*swapin) += (double) cpu->cpu_vminfo.swapin;
316
319
                }
317
320
                if(pgswapin)
318
321
                {
319
 
                   /* uint_t   pgswapin;        // pages swapped in */
 
322
                   /* uint_t   pgswapin;        */ /* pages swapped in */
320
323
                  (*pgswapin) += (double) cpu->cpu_vminfo.pgswapin;
321
324
                }
322
325
                if(swapout)
323
326
                {
324
 
                   /* uint_t   swapout;         // swapout */
 
327
                   /* uint_t   swapout;         */ /* swapout */
325
328
                   (*swapout) += (double) cpu->cpu_vminfo.swapout;
326
329
                }
327
330
                if(pgswapout)
328
331
                {
329
 
                   /* uint_t   pgswapout;       // pages swapped out */
 
332
                   /* uint_t   pgswapout;       */ /* pages swapped out */
330
333
                  (*pgswapout) += (double) cpu->cpu_vminfo.pgswapout;
331
334
                }
332
335
                cpu_count += 1;
360
363
        return SYSINFO_RET_FAIL;
361
364
    }
362
365
 
363
 
    if(get_param(param, 1, swapdev, MAX_STRING_LEN) != 0)
 
366
    if(get_param(param, 1, swapdev, sizeof(swapdev)) != 0)
364
367
    {
365
368
        return SYSINFO_RET_FAIL;
366
369
    }
368
371
    if(swapdev[0] == '\0')
369
372
    {
370
373
        /* default parameter */
371
 
        sprintf(swapdev, "all");
 
374
        zbx_snprintf(swapdev, sizeof(swapdev), "all");
372
375
    }
373
376
 
374
 
    if(strncmp(swapdev, "all", MAX_STRING_LEN))
 
377
    if(strncmp(swapdev, "all", sizeof(swapdev)))
375
378
    {
376
379
        return SYSINFO_RET_FAIL;
377
380
    }
378
381
    
379
 
    if(get_param(param, 2, mode, MAX_STRING_LEN) != 0)
 
382
    if(get_param(param, 2, mode, sizeof(mode)) != 0)
380
383
    {
381
384
        mode[0] = '\0';
382
385
    }
383
386
    
384
387
    if(mode[0] == '\0')
385
388
    {
386
 
        strscpy(mode, "count");
 
389
        zbx_snprintf(mode, sizeof(mode), "count");
387
390
    }
388
391
    
389
392
    if(strcmp(mode,"count") == 0)
422
425
        return SYSINFO_RET_FAIL;
423
426
    }
424
427
 
425
 
    if(get_param(param, 1, swapdev, MAX_STRING_LEN) != 0)
 
428
    if(get_param(param, 1, swapdev, sizeof(swapdev)) != 0)
426
429
    {
427
430
        return SYSINFO_RET_FAIL;
428
431
    }
430
433
    if(swapdev[0] == '\0')
431
434
    {
432
435
        /* default parameter */
433
 
        sprintf(swapdev, "all");
 
436
        zbx_snprintf(swapdev, sizeof(swapdev), "all");
434
437
    }
435
438
 
436
 
    if(strncmp(swapdev, "all", MAX_STRING_LEN))
 
439
    if(strncmp(swapdev, "all", sizeof(swapdev)))
437
440
    {
438
441
        return SYSINFO_RET_FAIL;
439
442
    }
440
443
    
441
 
    if(get_param(param, 2, mode, MAX_STRING_LEN) != 0)
 
444
    if(get_param(param, 2, mode, sizeof(mode)) != 0)
442
445
    {
443
446
        mode[0] = '\0';
444
447
    }
445
448
    
446
449
    if(mode[0] == '\0')
447
450
    {
448
 
        strscpy(mode, "count");
 
451
        zbx_snprintf(mode, sizeof(mode), "count");
449
452
    }
450
453
    
451
454
    if(strcmp(mode,"count") == 0)