| 157 | } |
| 158 | |
| 159 | static void |
| 160 | pidVirt_ProcessProcSelfTask(DmtcpEventData_t *data) |
| 161 | { |
| 162 | if (!Util::strStartsWith(data->virtualToRealPath.path, PROC_PREFIX)) { |
| 163 | return; |
| 164 | } |
| 165 | |
| 166 | char *ptr = strstr(data->virtualToRealPath.path, PROC_TASK_TOKEN); |
| 167 | if (ptr == nullptr) { |
| 168 | return; |
| 169 | } |
| 170 | |
| 171 | char *rest = nullptr; |
| 172 | char *tidStr = ptr + PROC_TASK_TOKEN_LEN; |
| 173 | |
| 174 | pid_t virtualTid = strtol(tidStr, &rest, 0); |
| 175 | if (virtualTid > 0) { |
| 176 | char buf[PATH_MAX - 20]; |
| 177 | strncpy(buf, rest, PATH_MAX - 20); |
| 178 | pid_t realTid = VIRTUAL_TO_REAL_PID(virtualTid); |
| 179 | JASSERT(20+strlen(buf) < PATH_MAX); // Reserve char[20] for realTid, below. |
| 180 | snprintf(tidStr, PATH_MAX, "%d%s", realTid, buf); |
| 181 | } |
| 182 | } |
| 183 | |
| 184 | // FIXME: This function needs third argument newpathsize, or assume PATH_MAX |
| 185 | static void |
no outgoing calls
no test coverage detected