Subject: etags malloc problems

From: <[email-masked]>
Date: Thu, 05 Jan 2017 03:07:13 +0000

clang-3.9  -g -pipe -Wall -O1 -fsanitize=address -fno-omit-frame-pointer   -MD  -MF.depend.etags.o -MTetags.o -std=gnu99 -fstack-protector-strong    -Qunused-arguments  -c etags.c -o etags.o
etags.c:6367:25: warning: assigning to 'unsigned char *' from 'char [256]'
      converts between pointers to integer types with different sign
      [-Wpointer-sign]
      patbuf->translate = lc_trans;     /* translation table to fold case  */
                        ^ ~~~~~~~~
1 warning generated.
clang-3.9 -g -pipe -Wall -O1 -fsanitize=address -fno-omit-frame-pointer -std=gnu99 -fstack-protector-strong -Qunused-arguments  -o etags etags.o  
echo ./etags.c | ./etags -l auto -S -

=================================================================
==5176==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x4cba68 in __interceptor_malloc (/tmp/etags/etags+0x4cba68)
    #1 0x5043f8 in xmalloc /tmp/etags/etags.c:7238:18
    #2 0x5036c5 in main /tmp/etags/etags.c:1097:15
    #3 0x7fb31bc332b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x4cba68 in __interceptor_malloc (/tmp/etags/etags+0x4cba68)
    #1 0x5043f8 in xmalloc /tmp/etags/etags.c:7238:18
    #2 0x5036b8 in main /tmp/etags/etags.c:1091:20
    #3 0x7fb31bc332b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)

Direct leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x4cba68 in __interceptor_malloc (/tmp/etags/etags+0x4cba68)
    #1 0x5043f8 in xmalloc /tmp/etags/etags.c:7238:18
    #2 0x50447c in concat /tmp/etags/etags.c:6958:18
    #3 0x503706 in main /tmp/etags/etags.c:1109:15
    #4 0x7fb31bc332b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)

SUMMARY: AddressSanitizer: 184 byte(s) leaked in 3 allocation(s).

the attached patch is what i used to make etags.c compile.

----
Sent using Sharklasers.com
Block or report abuse: https://www.sharklasers.com//abuse/?a=Q1RzSAoOVvkQhQ%2B3414YfAGJQtiX
--- etags.c	2017-01-04 18:32:12.110527356 -0800
+++ etags.c2	2017-01-04 18:53:39.689974623 -0800
@@ -80,2 +80,18 @@ University of California, as described a
 
+#define ATTRIBUTE_CONST	__attribute__((const))
+#define ATTRIBUTE_FORMAT_PRINTF(x,y)	__attribute__((format(printf,x,y)))
+#define COPYRIGHT	"I PREFER VIM"
+#define FOPEN_BINARY	"b"
+#define SET_BINARY(fd)
+#define c_isalnum	isalnum
+#define c_isalpha	isalpha
+#define c_isdigit	isdigit
+#define c_islower	islower
+#define c_isspace	isspace
+#define c_isupper	isupper
+#define c_strcasecmp	strcasecmp
+#define c_strncasecmp	strncasecmp
+#define c_tolower	tolower
+#define ptrdiff_t	__PTRDIFF_TYPE__
+
 char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
@@ -90,3 +106,5 @@ char pot_etags_version[] = "@(#) pot rev
 
-#include <config.h>
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1		/* enables some compiler checks on GNU */
+#endif
 
@@ -116,2 +134,3 @@ char pot_etags_version[] = "@(#) pot rev
 
+#include <ctype.h>
 #include <limits.h>
@@ -119,10 +138,8 @@ char pot_etags_version[] = "@(#) pot rev
 #include <stdarg.h>
+#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sysstdio.h>
+#include <stdio.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <binary-io.h>
-#include <c-ctype.h>
-#include <c-strcase.h>