You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Jiri Daněk (Jira)" <ji...@apache.org> on 2021/05/20 12:21:00 UTC

[jira] [Commented] (DISPATCH-2145) AddressSanitizer: invalid-pointer-pair: 0x7f898dbf41e0 0x7f898dbf3960 in qd_python_log

    [ https://issues.apache.org/jira/browse/DISPATCH-2145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17348325#comment-17348325 ] 

Jiri Daněk commented on DISPATCH-2145:
--------------------------------------

IMO this is nonsense. The second pointer is meant to point one byte after the buffer. The subtraction then calculates the size of the available memory. I can't think of any other way to rewrite this so the warning is not triggered.

> AddressSanitizer: invalid-pointer-pair: 0x7f898dbf41e0 0x7f898dbf3960 in qd_python_log
> --------------------------------------------------------------------------------------
>
>                 Key: DISPATCH-2145
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2145
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 1.17.0
>            Reporter: Jiri Daněk
>            Priority: Major
>
> This requires extra compile options as used in the CI build. Previously, I believed that setting ASAN_OPTIONS at runtime is enough to enable these checks, but actually it is not, a compile time options have to be enabled also on gcc comanline.
> https://github.com/jiridanek/qpid-dispatch/runs/2629253869
> {noformat}
> 15: Router QDR.A output file:
> 15: >>>>
> 15: =================================================================
> 15: ==2549==ERROR: AddressSanitizer: invalid-pointer-pair: 0x7f898dbf41e0 0x7f898dbf3960
> 15:     #0 0x7f8992c6b6f7 in vaprintf ../src/aprintf.h:31
> 15:     #1 0x7f8992c6bce5 in aprintf ../src/aprintf.h:62
> 15:     #2 0x7f8992c6e385 in write_log ../src/log.c:326
> 15:     #3 0x7f8992c6f2ad in qd_vlog_impl ../src/log.c:443
> 15:     #4 0x7f8992c6faf6 in qd_log_impl ../src/log.c:462
> 15:     #5 0x7f8992cbddd0 in qd_python_log ../src/python_embedded.c:545
> 15:     #6 0x7f89912e0fad in _PyMethodDef_RawFastCallKeywords Objects/call.c:697
> 15:     #7 0x7f89912e5e50 in _PyMethodDescr_FastCallKeywords Objects/descrobject.c:288
> 15:     #8 0x7f8991354bca in call_function Python/ceval.c:4593
> 15:     #9 0x7f899134d629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 15:     #10 0x7f89912e2099 in function_code_fastcall Objects/call.c:283
> 15:     #11 0x7f89912e2099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 15:     #12 0x7f8991354aee in call_function Python/ceval.c:4616
> 15:     #13 0x7f8991351c29 in _PyEval_EvalFrameDefault Python/ceval.c:3093
> 15:     #14 0x7f89912e2099 in function_code_fastcall Objects/call.c:283
> 15:     #15 0x7f89912e2099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 15:     #16 0x7f8991354aee in call_function Python/ceval.c:4616
> 15:     #17 0x7f899134d629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 15:     #18 0x7f89912e2099 in function_code_fastcall Objects/call.c:283
> 15:     #19 0x7f89912e2099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 15:     #20 0x7f8991354aee in call_function Python/ceval.c:4616
> 15:     #21 0x7f899134d629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 15:     #22 0x7f89912e2099 in function_code_fastcall Objects/call.c:283
> 15:     #23 0x7f89912e2099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 15:     #24 0x7f8991354aee in call_function Python/ceval.c:4616
> 15:     #25 0x7f899134d629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 15:     #26 0x7f89912e2099 in function_code_fastcall Objects/call.c:283
> 15:     #27 0x7f89912e2099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 15:     #28 0x7f8991354aee in call_function Python/ceval.c:4616
> 15:     #29 0x7f899134d629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 15:     #30 0x7f899134bfa2 in _PyEval_EvalCodeWithName Python/ceval.c:3930
> 15:     #31 0x7f89912e2135 in _PyFunction_FastCallKeywords Objects/call.c:433
> 15:     #32 0x7f8991354aee in call_function Python/ceval.c:4616
> 15:     #33 0x7f899134d58c in _PyEval_EvalFrameDefault Python/ceval.c:3124
> 15:     #34 0x7f899134bfa2 in _PyEval_EvalCodeWithName Python/ceval.c:3930
> 15:     #35 0x7f89912e2807 in _PyFunction_FastCallDict Objects/call.c:376
> 15:     #36 0x7f89912e2467 in _PyObject_CallFunctionVa Objects/call.c:959
> 15:     #37 0x7f89912e307c in _PyObject_CallFunctionVa Objects/call.c:932
> 15:     #38 0x7f89912e307c in PyObject_CallFunction Objects/call.c:979
> 15:     #39 0x7f8992c50f46 in qd_dispatch_load_config ../src/dispatch.c:133
> 15:     #40 0x56511affb157 in main_process ../router/src/main.c:97
> 15:     #41 0x56511afface0 in main ../router/src/main.c:369
> 15:     #42 0x7f8991b3c0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
> 15:     #43 0x56511affaf8d in _start (/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/build/router/qdrouterd+0x5f8d)
> 15: 
> 15: Address 0x7f898dbf41e0 is located in stack of thread T0 at offset 4576 in frame
> 15:     #0 0x7f8992c6db8f in write_log ../src/log.c:306
> 15: 
> 15:   This frame has 4 object(s):
> 15:     [48, 56) 'begin' (line 311)
> 15:     [80, 180) 'buf' (line 321)
> 15:     [224, 2272) 'msg' (line 338)
> 15:     [2400, 4576) 'log_str' (line 310) <== Memory access at offset 4576 overflows this variable
> 15: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
> 15:       (longjmp and C++ exceptions *are* supported)
> 15: Address 0x7f898dbf3960 is located in stack of thread T0 at offset 2400 in frame
> 15:     #0 0x7f8992c6db8f in write_log ../src/log.c:306
> 15: 
> 15:   This frame has 4 object(s):
> 15:     [48, 56) 'begin' (line 311)
> 15:     [80, 180) 'buf' (line 321)
> 15:     [224, 2272) 'msg' (line 338)
> 15:     [2400, 4576) 'log_str' (line 310) <== Memory access at offset 2400 is inside this variable
> 15: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
> 15:       (longjmp and C++ exceptions *are* supported)
> 15: SUMMARY: AddressSanitizer: invalid-pointer-pair ../src/aprintf.h:31 in vaprintf
> 15: ==2549==ABORTING
> {noformat}
> {noformat}
> 25: Router QDR.Policy output file:
> 25: >>>>
> 25: =================================================================
> 25: ==2935==ERROR: AddressSanitizer: invalid-pointer-pair: 0x7fe4132e21e0 0x7fe4132e1960
> 25:     #0 0x7fe4183596f7 in vaprintf ../src/aprintf.h:31
> 25:     #1 0x7fe418359ce5 in aprintf ../src/aprintf.h:62
> 25:     #2 0x7fe41835c385 in write_log ../src/log.c:326
> 25:     #3 0x7fe41835d2ad in qd_vlog_impl ../src/log.c:443
> 25:     #4 0x7fe41835daf6 in qd_log_impl ../src/log.c:462
> 25:     #5 0x7fe4183abdd0 in qd_python_log ../src/python_embedded.c:545
> 25:     #6 0x7fe4169cefad in _PyMethodDef_RawFastCallKeywords Objects/call.c:697
> 25:     #7 0x7fe4169d3e50 in _PyMethodDescr_FastCallKeywords Objects/descrobject.c:288
> 25:     #8 0x7fe416a42bca in call_function Python/ceval.c:4593
> 25:     #9 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #10 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #11 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #12 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #13 0x7fe416a3fc29 in _PyEval_EvalFrameDefault Python/ceval.c:3093
> 25:     #14 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #15 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #16 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #17 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #18 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #19 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #20 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #21 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #22 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #23 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #24 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #25 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #26 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #27 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #28 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #29 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #30 0x7fe416a39fa2 in _PyEval_EvalCodeWithName Python/ceval.c:3930
> 25:     #31 0x7fe4169d0135 in _PyFunction_FastCallKeywords Objects/call.c:433
> 25:     #32 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #33 0x7fe416a3b58c in _PyEval_EvalFrameDefault Python/ceval.c:3124
> 25:     #34 0x7fe416a39fa2 in _PyEval_EvalCodeWithName Python/ceval.c:3930
> 25:     #35 0x7fe4169d0807 in _PyFunction_FastCallDict Objects/call.c:376
> 25:     #36 0x7fe4169d0467 in _PyObject_CallFunctionVa Objects/call.c:959
> 25:     #37 0x7fe4169d107c in _PyObject_CallFunctionVa Objects/call.c:932
> 25:     #38 0x7fe4169d107c in PyObject_CallFunction Objects/call.c:979
> 25:     #39 0x7fe41833ef46 in qd_dispatch_load_config ../src/dispatch.c:133
> 25:     #40 0x561f589f1157 in main_process ../router/src/main.c:97
> 25:     #41 0x561f589f0ce0 in main ../router/src/main.c:369
> 25:     #42 0x7fe41722a0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
> 25:     #43 0x561f589f0f8d in _start (/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/build/router/qdrouterd+0x5f8d)
> 25: 
> 25: Address 0x7fe4132e21e0 is located in stack of thread T0 at offset 4576 in frame
> 25:     #0 0x7fe41835bb8f in write_log ../src/log.c:306
> 25: 
> 25:   This frame has 4 object(s):
> 25:     [48, 56) 'begin' (line 311)
> 25:     [80, 180) 'buf' (line 321)
> 25:     [224, 2272) 'msg' (line 338)
> 25:     [2400, 4576) 'log_str' (line 310) <== Memory access at offset 4576 overflows this variable
> 25: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
> 25:       (longjmp and C++ exceptions *are* supported)
> 25: Address 0x7fe4132e1960 is located in stack of thread T0 at offset 2400 in frame
> 25:     #0 0x7fe41835bb8f in write_log ../src/log.c:306
> 25: 
> 25:   This frame has 4 object(s):
> 25:     [48, 56) 'begin' (line 311)
> 25:     [80, 180) 'buf' (line 321)
> 25:     [224, 2272) 'msg' (line 338)
> 25:     [2400, 4576) 'log_str' (line 310) <== Memory access at offset 2400 is inside this variable
> 25: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
> 25:       (longjmp and C++ exceptions *are* supported)
> 25: SUMMARY: AddressSanitizer: invalid-pointer-pair ../src/aprintf.h:31 in vaprintf
> 25: ==2935==ABORTING
> 25: 
> 25: <<<<
> 25: 
> 25: Router QDR.Policy output file:
> 25: >>>>
> 25: =================================================================
> 25: ==2935==ERROR: AddressSanitizer: invalid-pointer-pair: 0x7fe4132e21e0 0x7fe4132e1960
> 25:     #0 0x7fe4183596f7 in vaprintf ../src/aprintf.h:31
> 25:     #1 0x7fe418359ce5 in aprintf ../src/aprintf.h:62
> 25:     #2 0x7fe41835c385 in write_log ../src/log.c:326
> 25:     #3 0x7fe41835d2ad in qd_vlog_impl ../src/log.c:443
> 25:     #4 0x7fe41835daf6 in qd_log_impl ../src/log.c:462
> 25:     #5 0x7fe4183abdd0 in qd_python_log ../src/python_embedded.c:545
> 25:     #6 0x7fe4169cefad in _PyMethodDef_RawFastCallKeywords Objects/call.c:697
> 25:     #7 0x7fe4169d3e50 in _PyMethodDescr_FastCallKeywords Objects/descrobject.c:288
> 25:     #8 0x7fe416a42bca in call_function Python/ceval.c:4593
> 25:     #9 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #10 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #11 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #12 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #13 0x7fe416a3fc29 in _PyEval_EvalFrameDefault Python/ceval.c:3093
> 25:     #14 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #15 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #16 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #17 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #18 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #19 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #20 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #21 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #22 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #23 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #24 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #25 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #26 0x7fe4169d0099 in function_code_fastcall Objects/call.c:283
> 25:     #27 0x7fe4169d0099 in _PyFunction_FastCallKeywords Objects/call.c:408
> 25:     #28 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #29 0x7fe416a3b629 in _PyEval_EvalFrameDefault Python/ceval.c:3110
> 25:     #30 0x7fe416a39fa2 in _PyEval_EvalCodeWithName Python/ceval.c:3930
> 25:     #31 0x7fe4169d0135 in _PyFunction_FastCallKeywords Objects/call.c:433
> 25:     #32 0x7fe416a42aee in call_function Python/ceval.c:4616
> 25:     #33 0x7fe416a3b58c in _PyEval_EvalFrameDefault Python/ceval.c:3124
> 25:     #34 0x7fe416a39fa2 in _PyEval_EvalCodeWithName Python/ceval.c:3930
> 25:     #35 0x7fe4169d0807 in _PyFunction_FastCallDict Objects/call.c:376
> 25:     #36 0x7fe4169d0467 in _PyObject_CallFunctionVa Objects/call.c:959
> 25:     #37 0x7fe4169d107c in _PyObject_CallFunctionVa Objects/call.c:932
> 25:     #38 0x7fe4169d107c in PyObject_CallFunction Objects/call.c:979
> 25:     #39 0x7fe41833ef46 in qd_dispatch_load_config ../src/dispatch.c:133
> 25:     #40 0x561f589f1157 in main_process ../router/src/main.c:97
> 25:     #41 0x561f589f0ce0 in main ../router/src/main.c:369
> 25:     #42 0x7fe41722a0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
> 25:     #43 0x561f589f0f8d in _start (/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/build/router/qdrouterd+0x5f8d)
> 25: 
> 25: Address 0x7fe4132e21e0 is located in stack of thread T0 at offset 4576 in frame
> 25:     #0 0x7fe41835bb8f in write_log ../src/log.c:306
> 25: 
> 25:   This frame has 4 object(s):
> 25:     [48, 56) 'begin' (line 311)
> 25:     [80, 180) 'buf' (line 321)
> 25:     [224, 2272) 'msg' (line 338)
> 25:     [2400, 4576) 'log_str' (line 310) <== Memory access at offset 4576 overflows this variable
> 25: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
> 25:       (longjmp and C++ exceptions *are* supported)
> 25: Address 0x7fe4132e1960 is located in stack of thread T0 at offset 2400 in frame
> 25:     #0 0x7fe41835bb8f in write_log ../src/log.c:306
> 25: 
> 25:   This frame has 4 object(s):
> 25:     [48, 56) 'begin' (line 311)
> 25:     [80, 180) 'buf' (line 321)
> 25:     [224, 2272) 'msg' (line 338)
> 25:     [2400, 4576) 'log_str' (line 310) <== Memory access at offset 2400 is inside this variable
> 25: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
> 25:       (longjmp and C++ exceptions *are* supported)
> 25: SUMMARY: AddressSanitizer: invalid-pointer-pair ../src/aprintf.h:31 in vaprintf
> 25: ==2935==ABORTING
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org