diff options
-rw-r--r-- | src/err-check.h | 37 | ||||
-rw-r--r-- | src/procfs.c | 3 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/err-check.h b/src/err-check.h new file mode 100644 index 0000000..2ee8168 --- /dev/null +++ b/src/err-check.h @@ -0,0 +1,37 @@ +/* +* Copyright 2018 Samsung Electronics Co., Ltd +* +* Licensed under the Flora License, Version 1.1 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://floralicense.org/license/ +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#ifndef __ERR_CHECK_H__ +#define __ERR_CHECK_H__ + +#include "log.h" + +#define ON_NULL_RETURN_VAL(x, v) do { \ + if ((x) == NULL) {\ + ERR(#x" is NULL");\ + return (v);\ + }\ +} while (0) + +#define ON_TRUE_RETURN_VAL(cond, v) do { \ + if ((cond)) {\ + ERR("condition ("#cond") is true");\ + return (v);\ + }\ +} while (0) + +#endif + diff --git a/src/procfs.c b/src/procfs.c index 4c906db..9a594aa 100644 --- a/src/procfs.c +++ b/src/procfs.c @@ -18,6 +18,7 @@ #include "procfs.h" #include "log.h" +#include "err-check.h" #define LOADAVG_FILEPATH "/proc/loadavg" @@ -25,6 +26,8 @@ int procfs_read_system_load_average(struct procfs_load_average_info *info) { float a1, a5, a15; + ON_NULL_RETURN_VAL(info, -1); + FILE *loadavg_fp = fopen(LOADAVG_FILEPATH, "r"); if (!loadavg_fp) { ERR("failed to open " LOADAVG_FILEPATH); |