Browse code

devmapper_wrapper.go: fix gcc warning

I am getting the following warning from gcc when compiling the daemon:

> # github.com/docker/docker/pkg/devicemapper
> pkg/devicemapper/devmapper_wrapper.go: In function ‘log_cb’:
> pkg/devicemapper/devmapper_wrapper.go:20:2: warning: ignoring return
> value of ‘vasprintf’, declared with attribute warn_unused_result
> [-Wunused-result]
> vasprintf(&buffer, f, ap);
> ^

vasprintf(3) man page says if the function returns -1, the buffer is
undefined, so we should not use it. In practice, I assume, this never
happens so we just return.

Introduced by https://github.com/moby/moby/pull/33845 that resulted in
commit 63328c6 ("devicemapper: remove 256 character limit of libdm logs")

Cc: Aleksa Sarai <asarai@suse.de>
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>

Kir Kolyshkin authored on 2017/07/18 09:40:29
Showing 1 changed files
... ...
@@ -15,10 +15,15 @@ static void	log_cb(int level, const char *file, int line, int dm_errno_or_class,
15 15
 {
16 16
 	char *buffer = NULL;
17 17
 	va_list ap;
18
+	int ret;
18 19
 
19 20
 	va_start(ap, f);
20
-	vasprintf(&buffer, f, ap);
21
+	ret = vasprintf(&buffer, f, ap);
21 22
 	va_end(ap);
23
+	if (ret < 0) {
24
+		// memory allocation failed -- should never happen?
25
+		return;
26
+	}
22 27
 
23 28
 	DevmapperLogCallback(level, (char *)file, line, dm_errno_or_class, buffer);
24 29
 	free(buffer);