tags 134729 + patch
tags 278906 + patch
thanks

Hello,

Please find enclosed a possible patch for these bugs.

The "tsocks" preload library exports functions which are
*not* functions which it is trying to override. The enclosed
patch prevents this from happening.

I got the idea for this patch from the write up of Ulrich Drepper on
shared libraries under http://people.redhat.com/~drepper/.

As far as I can see the library works with these patches and
does not exhibit the bugs.

Regards,

Kapil.
--

diff -u tsocks-1.8beta5/debian/changelog tsocks-1.8beta5/debian/changelog
--- tsocks-1.8beta5/debian/changelog
+++ tsocks-1.8beta5/debian/changelog
@@ -1,3 +1,15 @@
+tsocks (1.8beta5-3.1) unstable; urgency=low
+
+  * NMU
+  * parser.c: added visibility "hidden" attribute to functions
+    read_config, is_local, pick_server and strsplit. 
+    Closes: #134729,#278906.
+  * common.c: added visibility "hidden" attribute to functions
+    resolve_ip, set_log_options and show_msg. This prevents
+    bugs like those above recurring.
+
+ -- Kapil Hari Paranjape <[EMAIL PROTECTED]>  Thu, 19 Oct 2006 17:23:44 +0530
+
 tsocks (1.8beta5-3) unstable; urgency=low
 
   * TSOCKS_CONFFILE -> TSOCKS_CONF_FILE manpage bug (closes: #311805)
only in patch2:
unchanged:
--- tsocks-1.8beta5.orig/common.c
+++ tsocks-1.8beta5/common.c
@@ -25,7 +25,8 @@
 FILE *logfile = NULL;     /* File to which messages should be logged */
 int logstamp = 0;         /* Timestamp (and pid stamp) messages */
 
-unsigned int resolve_ip(char *host, int showmsg, int allownames) {
+unsigned int __attribute__ ((visibility ("hidden")))
+resolve_ip(char *host, int showmsg, int allownames) {
        struct hostent *new;
        unsigned int    hostaddr;
        struct in_addr *ip;
@@ -64,7 +65,8 @@
 /*             be logged instead of to standard error           */
 /*  timestamp - This indicates that messages should be prefixed */
 /*              with timestamps (and the process id)            */
-void set_log_options(int level, char *filename, int timestamp) {
+void __attribute__ ((visibility ("hidden")))
+set_log_options(int level, char *filename, int timestamp) {
 
    loglevel = level;
    if (loglevel < MSGERR)
@@ -78,7 +80,8 @@
    logstamp = timestamp;
 }
 
-void show_msg(int level, char *fmt, ...) {
+void __attribute__ ((visibility ("hidden")))
+show_msg(int level, char *fmt, ...) {
        va_list ap;
        int saveerr;
        extern char *progname;
only in patch2:
unchanged:
--- tsocks-1.8beta5.orig/parser.c
+++ tsocks-1.8beta5/parser.c
@@ -33,7 +33,8 @@
 static int handle_defpass(struct parsedfile *, int, char *);
 static int make_netent(char *value, struct netent **ent);
 
-int read_config (char *filename, struct parsedfile *config) {
+int __attribute__ ((visibility ("hidden")))
+read_config (char *filename, struct parsedfile *config) {
        FILE *conf;
        char line[MAXLINE];
        int rc = 0;
@@ -577,7 +578,8 @@
        return(0);
 }
 
-int is_local(struct parsedfile *config, struct in_addr *testip) {
+int __attribute__ ((visibility ("hidden")))
+is_local(struct parsedfile *config, struct in_addr *testip) {
         struct netent *ent;
 
        for (ent = (config->localnets); ent != NULL; ent = ent -> next) {
@@ -591,7 +593,8 @@
 }
 
 /* Find the appropriate server to reach an ip */
-int pick_server(struct parsedfile *config, struct serverent **ent, 
+int __attribute__ ((visibility ("hidden")))
+pick_server(struct parsedfile *config, struct serverent **ent, 
                 struct in_addr *ip, unsigned int port) {
        struct netent *net;     
    char ipbuf[64];
@@ -635,7 +638,8 @@
 /* the start pointer is set to be NULL. The difference between      */
 /* standard strsep and this function is that this one will          */
 /* set *separator to the character separator found if it isn't null */
-char *strsplit(char *separator, char **text, const char *search) {
+char __attribute__ ((visibility ("hidden")))
+*strsplit(char *separator, char **text, const char *search) {
    int len;
    char *ret;
 

Attachment: signature.asc
Description: Digital signature

Reply via email to