[syslog-ng] [Bug 83] New: sql (oracle) queries dont escape single quotes

bugzilla at bugzilla.balabit.com bugzilla at bugzilla.balabit.com
Wed Jun 2 00:30:25 CEST 2010


https://bugzilla.balabit.com/show_bug.cgi?id=83

           Summary: sql (oracle) queries dont escape single quotes
           Product: syslog-ng
           Version: 3.1.x
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: unspecified
         Component: syslog-ng
        AssignedTo: bazsi at balabit.hu
        ReportedBy: bugzilla.syslogng at feystorm.net
Type of the Report: ---
   Estimated Hours: 0.0


SQL inserts with values containing single quotes dont escape the quotes causing the inserts to fail.

Jun  1 22:08:24 slider syslog-ng.515[20417]: Error running SQL query; type='oracle', host='', port='', user='report_agent', database='oru23', error='1400:
ORA-01400: cannot insert NULL into ("CMS_DBO"."MESSAGE_TRACKING"."MSGID")\x0a', query='INSERT INTO cms_dbo.message_tracking (host, msg_dt, pname, message,
msgid, xid, from_name, from_domain, to_name, to_domain, addr) VALUES (\'iceman.dev.usa.net\', \'2010-06-01 22:08:22\', \'smtad\', \'[4155186080] 000000007  ok
XID: XID007oFawiw8111Xem MsgID: <4C0584D4.50007 at devo0402.dev.usa.net> Dest: cms:gwsin IP: 165.212.101.13 From: <phemmer at devo0402.dev.usa.net> Rcpt:
<phemmer at devo0402.dev.usa.net> Subject: \'\'Re: asdf\'\' Size: 22400 Response: 250 Mail accepted (292oFawiw3072Mem)\', NULL, \'XID007oFawiw8111Xem\',
\'phemmer\', \'devo0402.dev.usa.net\', \'phemmer\', \'devo0402.dev.usa.net\', \'165.212.101.13\')'

The part that is causing the problem is the 'message' field with value:
[4155186080] 000000007  ok XID: XID007oFawiw8111Xem MsgID: <4C0584D4.50007 at devo0402.dev.usa.net> Dest: cms:gwsin IP: 165.212.101.13 From:
<phemmer at devo0402.dev.usa.net> Rcpt: <phemmer at devo0402.dev.usa.net> Subject: ''Re: asdf'' Size: 22400 Response: 250 Mail accepted (292oFawiw3072Mem)

^^that is what is passed in the insert statement. As you can see, there are 2 single-quotes around the subject. The string as it gets passed to syslog-ng is:
...Subject: 'Re: asdf' Size...
So instead of escaping the single quote, it adds another quote.

The afsql.c code calls dbi_conn_quote_string_copy to escape it, but this is obviously failing to do so (and not only fails, but for some reason adds a second
quote.

I'm attempting to find a simple fix for this, but there doesnt appear to be a clean & proper way of doing this. But I'll keep digging as this is a fairly
significant flaw which I have to get fixed before using this in production.


-- 
Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the syslog-ng mailing list