Mercurial > hg
view contrib/chg/procutil.h @ 43394:d359dfc15aca stable
fsmonitor: handle unicode keys in tuples
In Python 3, keys in the bset tuple are typically str, not
bytes. PyBytes_AsString() would return NULL. But we weren't
checking the return value and this would lead to a segfault.
This commit makes the code type and Python version aware. The
Python version specific code is to allow us to utilize a
modern API for converting str -> char* without having to
allocate an extra PyObject.
FWIW I wanted to assume that keys were always str. However,
there appear to be some bytes keys in some cases. I haven't
debugged this further.
Differential Revision: https://phab.mercurial-scm.org/D7210
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 02 Nov 2019 14:17:48 -0700 |
parents | ac5527021097 |
children |
line wrap: on
line source
/* * Utilities about process handling - signal and subprocess (ex. pager) * * Copyright (c) 2011 Yuya Nishihara <yuya@tcha.org> * * This software may be used and distributed according to the terms of the * GNU General Public License version 2 or any later version. */ #ifndef PROCUTIL_H_ #define PROCUTIL_H_ #include <unistd.h> void restoresignalhandler(void); void setupsignalhandler(pid_t pid, pid_t pgid); pid_t setuppager(const char *pagercmd, const char *envp[]); void waitpager(void); #endif /* PROCUTIL_H_ */