Skip to content

Commit 3016b9a

Browse files
committed
Catch OSError exceptions
If a user passes a socket file that does not exist then the is_unix_socket will raise an exception : ➜ haproxytool acl -F /var/lib/haproxy/statss -s /etc/haproxy/block_traffic_header_names.list Traceback (most recent call last): File "/home/pavlos/.virtualenvs/haproxy/bin/haproxytool", line 8, in <module> sys.exit(main()) File "/home/pavlos/.virtualenvs/haproxy/lib/python3.9/site-packages/haproxytool/cli.py", line 41, in main call_main(sub_cmd) File "/home/pavlos/.virtualenvs/haproxy/lib/python3.9/site-packages/haproxytool/acl.py", line 107, in main hap = haproxy_object(arguments) File "/home/pavlos/.virtualenvs/haproxy/lib/python3.9/site-packages/haproxytool/utils.py", line 57, in haproxy_object hap = haproxy.HAProxy(socket_file=arguments['--file'], File "/home/pavlos/.virtualenvs/haproxy/lib/python3.9/site-packages/haproxyadmin/haproxy.py", line 117, in __init__ elif (socket_file and is_unix_socket(socket_file) and File "/home/pavlos/.virtualenvs/haproxy/lib/python3.9/site-packages/haproxyadmin/utils.py", line 157, in is_unix_socket mode = os.stat(path).st_mode FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/haproxy/statss' Let's avoid this situation by catching OSError class exceptions.
1 parent 102b957 commit 3016b9a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

haproxyadmin/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,10 @@ def is_unix_socket(path):
154154
:type path: ``string``
155155
:rtype: ``bool``
156156
"""
157-
mode = os.stat(path).st_mode
157+
try:
158+
mode = os.stat(path).st_mode
159+
except OSError:
160+
return False
158161

159162
return stat.S_ISSOCK(mode)
160163

0 commit comments

Comments
 (0)