summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/err-check.h37
-rw-r--r--src/procfs.c3
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);