diff mbox series

[v2,1/7] Add more safe macros for mqueue API

Message ID 20220616140717.23708-2-andrea.cervesato@suse.com
State Superseded
Headers show
Series Refactor mqns testing suite | expand

Commit Message

Andrea Cervesato June 16, 2022, 2:07 p.m. UTC
Added SAFE_MQ_UNLINK and SAFE_MQ_CLOSE in tst_safe_posix_ipc.h

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
 include/tst_safe_posix_ipc.h | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

Comments

Petr Vorel June 16, 2022, 9:52 p.m. UTC | #1
Hi Andrea,

> Added SAFE_MQ_UNLINK and SAFE_MQ_CLOSE in tst_safe_posix_ipc.h

LGTM, few minor notes below.

Reviewed-by: Petr Vorel <petr.vorel@gmail.com>

> +++ b/include/tst_safe_posix_ipc.h
> @@ -11,6 +11,10 @@

>  #define SAFE_MQ_OPEN(pathname, oflags, ...) \
>  	safe_mq_open(__FILE__, __LINE__, (pathname), (oflags), ##__VA_ARGS__)
I'd add blank line here (readability)

> +#define SAFE_MQ_CLOSE(__mqdes) \
> +	safe_mq_close(__FILE__, __LINE__, (__mqdes))

and here.
> +#define SAFE_MQ_UNLINK(name) \
> +	safe_mq_unlink(__FILE__, __LINE__, (name))

>  static inline int safe_mq_open(const char *file, const int lineno,
>  			       const char *pathname, int oflags, ...)
> @@ -46,4 +50,34 @@ static inline int safe_mq_open(const char *file, const int lineno,
>  	return rval;
>  }

> +static inline int safe_mq_close(const char *file, const int lineno,
> +				mqd_t __mqdes)
> +{
> +	int rval;
> +
> +	rval = mq_close(__mqdes);
> +
> +	if (rval == -1) {
> +		tst_brk_(file, lineno, TBROK | TERRNO,
> +			"mq_close(%d) failed", __mqdes);
> +	}

How about check for invalid return value?

	} else if (rval < 0) {
		tst_brk_(file, lineno, TBROK | TERRNO,
			"Invalid mq_close(%d) return value %d", __mqdes, rval);
	}

> +
> +	return rval;
> +}
> +
> +static inline int safe_mq_unlink(const char *file, const int lineno,
> +				const char* name)
> +{
> +	int rval;
> +
> +	rval = mq_unlink(name);
> +
> +	if (rval == -1) {
> +		tst_brk_(file, lineno, TBROK | TERRNO,
> +			"mq_unlink(%s) failed", name);
> +	}
And here.


Kind regards,
Petr

> +
> +	return rval;
> +}
> +
>  #endif /* TST_SAFE_POSIX_IPC_H__ */
Petr Vorel June 16, 2022, 9:57 p.m. UTC | #2
Hi Andrea,

...
> > +static inline int safe_mq_close(const char *file, const int lineno,
> > +				mqd_t __mqdes)
> > +{
> > +	int rval;
> > +
> > +	rval = mq_close(__mqdes);
> > +
> > +	if (rval == -1) {
> > +		tst_brk_(file, lineno, TBROK | TERRNO,
> > +			"mq_close(%d) failed", __mqdes);
> > +	}

> How about check for invalid return value?

> 	} else if (rval < 0) {
> 		tst_brk_(file, lineno, TBROK | TERRNO,
> 			"Invalid mq_close(%d) return value %d", __mqdes, rval);
> 	}

Also safe_mq_open() could have check for invalid return value.

Kind regards,
Petr
Andrea Cervesato July 22, 2022, 9:31 a.m. UTC | #3
Hi!

On 6/16/22 23:57, Petr Vorel wrote:
> Hi Andrea,
>
> ...
>>> +static inline int safe_mq_close(const char *file, const int lineno,
>>> +				mqd_t __mqdes)
>>> +{
>>> +	int rval;
>>> +
>>> +	rval = mq_close(__mqdes);
>>> +
>>> +	if (rval == -1) {
>>> +		tst_brk_(file, lineno, TBROK | TERRNO,
>>> +			"mq_close(%d) failed", __mqdes);
>>> +	}
>> How about check for invalid return value?
>> 	} else if (rval < 0) {
>> 		tst_brk_(file, lineno, TBROK | TERRNO,
>> 			"Invalid mq_close(%d) return value %d", __mqdes, rval);
>> 	}
> Also safe_mq_open() could have check for invalid return value.
>
It's already like that, Isn't it?
> Kind regards,
> Petr

Andrea
Petr Vorel July 26, 2022, 6:48 a.m. UTC | #4
Hi Andrea,

> Hi!

> On 6/16/22 23:57, Petr Vorel wrote:
> > Hi Andrea,

> > ...
> > > > +static inline int safe_mq_close(const char *file, const int lineno,
> > > > +				mqd_t __mqdes)
> > > > +{
> > > > +	int rval;
> > > > +
> > > > +	rval = mq_close(__mqdes);
> > > > +
> > > > +	if (rval == -1) {
> > > > +		tst_brk_(file, lineno, TBROK | TERRNO,
> > > > +			"mq_close(%d) failed", __mqdes);
> > > > +	}
> > > How about check for invalid return value?
> > > 	} else if (rval < 0) {
> > > 		tst_brk_(file, lineno, TBROK | TERRNO,
> > > 			"Invalid mq_close(%d) return value %d", __mqdes, rval);
> > > 	}
> > Also safe_mq_open() could have check for invalid return value.

> It's already like that, Isn't it?

No it's not. But looking for v3 of this patchset (v3) you have added it.
Thanks!

Kind regards,
Petr

> > Kind regards,
> > Petr

> Andrea
diff mbox series

Patch

diff --git a/include/tst_safe_posix_ipc.h b/include/tst_safe_posix_ipc.h
index b60c12c9e..3650209ae 100644
--- a/include/tst_safe_posix_ipc.h
+++ b/include/tst_safe_posix_ipc.h
@@ -11,6 +11,10 @@ 
 
 #define SAFE_MQ_OPEN(pathname, oflags, ...) \
 	safe_mq_open(__FILE__, __LINE__, (pathname), (oflags), ##__VA_ARGS__)
+#define SAFE_MQ_CLOSE(__mqdes) \
+	safe_mq_close(__FILE__, __LINE__, (__mqdes))
+#define SAFE_MQ_UNLINK(name) \
+	safe_mq_unlink(__FILE__, __LINE__, (name))
 
 static inline int safe_mq_open(const char *file, const int lineno,
 			       const char *pathname, int oflags, ...)
@@ -46,4 +50,34 @@  static inline int safe_mq_open(const char *file, const int lineno,
 	return rval;
 }
 
+static inline int safe_mq_close(const char *file, const int lineno,
+				mqd_t __mqdes)
+{
+	int rval;
+
+	rval = mq_close(__mqdes);
+
+	if (rval == -1) {
+		tst_brk_(file, lineno, TBROK | TERRNO,
+			"mq_close(%d) failed", __mqdes);
+	}
+
+	return rval;
+}
+
+static inline int safe_mq_unlink(const char *file, const int lineno,
+				const char* name)
+{
+	int rval;
+
+	rval = mq_unlink(name);
+
+	if (rval == -1) {
+		tst_brk_(file, lineno, TBROK | TERRNO,
+			"mq_unlink(%s) failed", name);
+	}
+
+	return rval;
+}
+
 #endif /* TST_SAFE_POSIX_IPC_H__ */