obexapp strict type

Iain Hibbert plunky at rya-online.net
Tue Oct 19 11:33:18 UTC 2010


Hi,

obexapp uses 'int' for return of read/write functions, but they return
ssize_t which may not be the same.. also int for buffer size which should
be size_t. patch attached fixes this to avoid some complier warnings..

regards,
iain
-------------- next part --------------
--- util.c.orig	2010-01-08 18:31:22.000000000 +0000
+++ util.c	2010-01-08 19:51:02.000000000 +0000
@@ -288,14 +288,14 @@ obexapp_util_locale_to_utf16be(char cons
  * Read upto buffer_length bytes into the buffer from the file descriptor fd
  */
 
-int
-obexapp_util_read(int fd, uint8_t *buffer, int buffer_length)
+ssize_t
+obexapp_util_read(int fd, uint8_t *buffer, size_t buffer_length)
 {
-	int	length;
+	ssize_t length;
 
 again:
 	length = read(fd, buffer, buffer_length);
-	if (length < 0 && errno == EINTR)
+	if (length == -1 && errno == EINTR)
 		goto again;
 
 	return (length);
@@ -305,15 +305,16 @@ again:
  * Write buffer_length bytes from the buffer to the descriptor fd
  */
 
-int
-obexapp_util_write(int fd, uint8_t const *buffer, int buffer_length)
+ssize_t
+obexapp_util_write(int fd, uint8_t const *buffer, size_t buffer_length)
 {
-	int	wrote, size;
+	ssize_t size;
+	size_t wrote;
 
 	wrote = 0;
 	while (wrote < buffer_length) {
 		size = write(fd, buffer + wrote, buffer_length - wrote);
-		if (size < 0) {
+		if (size == -1) {
 			if (errno == EINTR)
 				continue;
 
--- util.h.orig	2010-01-08 18:31:22.000000000 +0000
+++ util.h	2010-01-08 19:51:22.000000000 +0000
@@ -39,8 +39,8 @@ int obexapp_util_locale_to_utf8(char con
 int obexapp_util_locale_from_utf16be(uint8_t const *src, size_t srclen, char *dst, size_t dstlen);
 int obexapp_util_locale_to_utf16be(char const *src, size_t srclen, uint8_t *dst, size_t dstlen);
 
-int obexapp_util_read(int fd, uint8_t *buffer, int buffer_length);
-int obexapp_util_write(int fd, uint8_t const *buffer, int buffer_length);
+ssize_t obexapp_util_read(int fd, uint8_t *buffer, size_t buffer_length);
+ssize_t obexapp_util_write(int fd, uint8_t const *buffer, size_t buffer_length);
 int obexapp_util_display_folder_listing(char const *ls);
 char *	obexapp_util_gets(char const *prompt, char *buffer, int buffer_size);
 char *	obexapp_util_strsep(char **sp, char const *delim);


More information about the freebsd-bluetooth mailing list