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

« back to all changes in this revision

Viewing changes to src/libs/zbxsysinfo/osx/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"
192
191
        init_result(result);
193
192
        init_result(&result_tmp);
194
193
 
195
 
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
196
 
                return  SYSINFO_RET_FAIL;
 
194
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
195
                !(result_tmp.type & AR_UINT64))
 
196
                        return  SYSINFO_RET_FAIL;
197
197
        tot_val = result_tmp.ui64;
198
198
 
199
199
        /* Check fot division by zero */
203
203
                return  SYSINFO_RET_FAIL;
204
204
        }
205
205
 
206
 
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
207
 
                return  SYSINFO_RET_FAIL;
 
206
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
207
                !(result_tmp.type & AR_UINT64))
 
208
                        return  SYSINFO_RET_FAIL;
208
209
        free_val = result_tmp.ui64;
209
210
 
210
211
        free_result(&result_tmp);
225
226
        init_result(result);
226
227
        init_result(&result_tmp);
227
228
 
228
 
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
229
 
                return  SYSINFO_RET_FAIL;
 
229
        if(SYSTEM_SWAP_TOTAL(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
230
                !(result_tmp.type & AR_UINT64))
 
231
                        return  SYSINFO_RET_FAIL;
230
232
        tot_val = result_tmp.ui64;
231
233
 
232
234
        /* Check fot division by zero */
236
238
                return  SYSINFO_RET_FAIL;
237
239
        }
238
240
 
239
 
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK)
240
 
                return  SYSINFO_RET_FAIL;
 
241
        if(SYSTEM_SWAP_FREE(cmd, param, flags, &result_tmp) != SYSINFO_RET_OK ||
 
242
                !(result_tmp.type & AR_UINT64))
 
243
                        return  SYSINFO_RET_FAIL;
241
244
        free_val = result_tmp.ui64;
242
245
 
243
246
        free_result(&result_tmp);
261
264
        {
262
265
                {"total",       SYSTEM_SWAP_TOTAL},
263
266
                {"free",        SYSTEM_SWAP_FREE},
264
 
                {"pfree",       SYSTEM_SWAP_PFREE},
265
 
                {"pused",       SYSTEM_SWAP_PUSED},
 
267
                {"pfree",       SYSTEM_SWAP_PFREE},
 
268
                {"pused",       SYSTEM_SWAP_PUSED},
266
269
                {0,             0}
267
270
        };
268
271
 
279
282
                return SYSINFO_RET_FAIL;
280
283
        }
281
284
 
282
 
        if(get_param(param, 1, swapdev, MAX_STRING_LEN) != 0)
 
285
        if(get_param(param, 1, swapdev, sizeof(swapdev)) != 0)
283
286
        {
284
287
                return SYSINFO_RET_FAIL;
285
288
        }
287
290
        if(swapdev[0] == '\0')
288
291
        {
289
292
                /* default parameter */
290
 
                sprintf(swapdev, "all");
 
293
                zbx_snprintf(swapdev, sizeof(swapdev), "all");
291
294
        }
292
295
 
293
 
        if(strncmp(swapdev, "all", MAX_STRING_LEN))
 
296
        if(strncmp(swapdev, "all", sizeof(swapdev)))
294
297
        {
295
298
                return SYSINFO_RET_FAIL;
296
299
        }
297
300
        
298
 
        if(get_param(param, 2, mode, MAX_STRING_LEN) != 0)
 
301
        if(get_param(param, 2, mode, sizeof(mode)) != 0)
299
302
        {
300
303
                mode[0] = '\0';
301
304
        }
303
306
        if(mode[0] == '\0')
304
307
        {
305
308
                /* default parameter */
306
 
                sprintf(mode, "free");
 
309
                zbx_snprintf(mode, sizeof(mode), "free");
307
310
        }
308
311
 
309
312
        for(i=0; fl[i].mode!=0; i++)