当前位置: 首页 > 知识库问答 >
问题:

c - linux pam应用测试程序出现段错误的问题?

柳飞飙
2023-09-17

老师好, 下面的程序在执行retval = pam_authenticate(pamh, PAM_SUCCESS) 出现内存越界问题, 找不出问题来。。。。。

下面是一个简单pam的 应用服务测试程序。

#include <security/pam_appl.h>#include <security/pam_misc.h>#include <stdio.h>//常规初始化int misc_conv(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr) {    return PAM_SUCCESS;}static struct pam_conv conv = {    misc_conv,    NULL};int main(int argc, char *argv[]){    pam_handle_t *pamh=NULL;    int retval;    const char *user="nobody";    //传参判断    if(argc == 2) {        user = argv[1]; //命令行参数传入用户名    } else {        fprintf(stderr, "Usage: check_user [username]\n");        exit(1);    }    printf("user:%s\n",user);    //printf("pamh1: %p\n", *pamh);        retval = pam_start("test_pam", user, &conv, &pamh);    printf("retval1: %d\n", retval);    //启动pam模块成功则启动配置文件中配置的auth模块    if (retval == PAM_SUCCESS) {        printf("retval2: %d\n", retval);        retval = pam_authenticate(pamh, PAM_SUCCESS); // 这行出现内存越界的问题。        printf("retval3: %d\n", retval);    }    if (retval == PAM_SUCCESS) {        fprintf(stdout, "Authenticated\n");    } else {        fprintf(stdout, "Not Authenticated!!!\n");    }    //结束释放pam模块服务        if (pam_end(pamh,retval) != PAM_SUCCESS) {     /* close Linux-PAM */            pamh = NULL;        fprintf(stderr, "check_user: failed to release authenticator\n");        exit(1);    }    return ( retval == PAM_SUCCESS ? 0:1 );       /* indicate success */}

共有1个答案

杜君浩
2023-09-17

linux pam应用测试程序出现段错误的问题?

回答:
该程序在执行retval = pam_authenticate(pamh, PAM_SUCCESS)这行代码时出现内存越界的问题。

 类似资料:
  • 当我连续发布数据时,我会在C#应用程序上得到发布超时错误,一旦我重新启动应用程序,它会工作几个小时。[注意:由于php需要时间完成任务,所以新的请求都在等待中,它创建队列,等待时间超过2分钟,im出现超时错误]。 我们的两台服务器都使用了最大50%的CPU和RAM使用量 我检查了两个C#代码和PHP代码都工作良好,没有任何问题或bug 提前致谢哥们儿:)

  • 几天以来,我在运行Struts网络应用程序时遇到了一些问题。我尝试了StackOverflow中与我的问题相关的几个解决方案,但都不起作用。 网状物xml: struts。xml: 登录。jsp: 登录。爪哇: 我补充说: commons-logging-1.1.3。罐子 freemarker-2.3.19。罐子 ognl-3.0.6。罐子 struts2-core-2.3.15.1。罐子 xwo

  • 每当我在输入命令npx react native run android后尝试测试应用程序时,就会出现以下错误。我试着在环境变量中设置路径。但仍然不起作用我尝试重新安装react native,但仍然不起作用。我试图从java重新安装JDK,但最后,该应用程序仍然无法在模拟器中运行。感谢您的反馈:) 失败:生成失败,出现异常。 出错的地方:任务执行失败:react-native-community

  • null 脚本'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle'行:838 出了什么问题: 任务“:app:CompileFlutterBuildreLease”执行失败。 null null 应用程序:Build.Gradle

  • 我在一个项目中工作,所以我有下面的代码: 但问题是,我得到了这个错误: 处理命令时发生未知的服务器端错误。原始错误:执行adbexec时出错。原始错误:“command”c:\users\dnkos\appdata\local\android\sdk\platform-tools\adb.exe-p 5037-s emulator-5554 install-r c:\users\dnkos\app

  • 问题内容: 实际上,我有两个有关Android错误的相关问题。我发布了一个应用程序的更新,该应用程序以前可以正常运行,并且可以在Nexus One,G1和模拟器上以当前版本运行。但是,自从上次更新以来,我通过Android市场控制台收到了很多错误日志,并且无法重现该错误。该应用程序非常简单,只有两个活动,因此手动测试该应用程序应该非常容易。但是,在发布之前,经常会发现一些我找不到的错误。 所以第一