return g_strdup (path);
if (g_str_has_prefix (path, "/tmp"))
- return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", path + strlen ("tmp"), NULL);
+ return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", path + strlen ("/tmp"), NULL);
return g_strdup (path);
}
return result;
}
+int
+unlinkat (int dirfd, const char *pathname, int flags)
+{
+ int (*_unlinkat) (int dirfd, const char *pathname, int flags);
+ gchar *new_path = NULL;
+ int result;
+
+ _unlinkat = (int (*)(int dirfd, const char *pathname, int flags)) dlsym (RTLD_NEXT, "unlinkat");
+
+ new_path = redirect_path (pathname);
+ result = _unlinkat (dirfd, new_path, flags);
+ g_free (new_path);
+
+ return result;
+}
+
int
creat (const char *pathname, mode_t mode)
{
return ret;
}
+int
+__fxstatat(int ver, int dirfd, const char *pathname, struct stat *buf, int flags)
+{
+ int (*___fxstatat) (int ver, int dirfd, const char *pathname, struct stat *buf, int flags);
+ gchar *new_path = NULL;
+ int ret;
+
+ ___fxstatat = (int (*)(int ver, int dirfd, const char *pathname, struct stat *buf, int flags)) dlsym (RTLD_NEXT, "__fxstatat");
+
+ new_path = redirect_path (pathname);
+ ret = ___fxstatat (ver, dirfd, new_path, buf, flags);
+ g_free (new_path);
+
+ return ret;
+}
+
+int
+__fxstatat64(int ver, int dirfd, const char *pathname, struct stat64 *buf, int flags)
+{
+ int (*___fxstatat64) (int ver, int dirfd, const char *pathname, struct stat64 *buf, int flags);
+ gchar *new_path = NULL;
+ int ret;
+
+ ___fxstatat64 = (int (*)(int ver, int dirfd, const char *pathname, struct stat64 *buf, int flags)) dlsym (RTLD_NEXT, "__fxstatat64");
+
+ new_path = redirect_path (pathname);
+ ret = ___fxstatat64 (ver, dirfd, new_path, buf, flags);
+ g_free (new_path);
+
+ return ret;
+}
+
DIR *
opendir (const char *name)
{
msg = malloc (sizeof (struct pam_message *) * 1);
msg[0] = malloc (sizeof (struct pam_message));
msg[0]->msg_style = PAM_PROMPT_ECHO_OFF;
- msg[0]->msg = "Enter new password:";
+ if ((flags & PAM_CHANGE_EXPIRED_AUTHTOK) != 0)
+ msg[0]->msg = "Enter new password (expired):";
+ else
+ msg[0]->msg = "Enter new password:";
result = pamh->conversation.conv (1, (const struct pam_message **) msg, &resp, pamh->conversation.appdata_ptr);
free (msg[0]);
free (msg);