http://libsmtp.sourceforge.net/
用纯C写的smtp客户端已经很少了,更重要的是性能要好,不要有太多附加的东西,只需要完成smtp主要协议就行,
我还是很喜欢这个项目的,我用它做smtp邮件系统的性能测试,可惜好久没更新了。
file:plg_login.c
/* username */
usr = (char*)malloc_ (2*strlen (srv->username)+4);
siz = alg_b64_encode (srv->username, strlen (srv->username), usr);
if (smtp_write (srv, usr, siz) == -1)
{
free_ (usr, NULL);
return (-1); /* error msg is already set */
}
if ((rsp = smtp_read_response_ (srv, 1)) == NULL)
{
free_ (usr, NULL);
return (-1); /* error msg is already set */
}
free_ (rsp, usr, NULL);
/* password */
pwd = (char*)malloc_ (2*strlen (srv->password)+4);
siz = alg_b64_encode (srv->password, strlen (srv->password), pwd);
if (smtp_write (srv, pwd, siz) == -1)
{
free_ (pwd, NULL);
return (-1); /* error msg is already set */
}
if ((rsp = smtp_read_response_ (srv, 1)) == NULL)
{
free_ (pwd, NULL);
return (-1); /* error msg is already set */
}
// free_ (rsp, usr, NULL);
/*
change usr to pwd.
*/
free_ (rsp, pwd, NULL);
释放指针的时候对usr释放了两次,导致系统报错double free。
第二次usr释放应该改为释放pwd。
分享到:
相关推荐
"bugbug-0.0.14-py3-none-any.whl" 是一个Python库的发行版本,它是一个名为“bugbug”的库,版本号为0.0.14,专为Python 3构建。这个.whl文件是一种预编译的Python分发格式,旨在简化安装过程,使得用户可以直接...
标题“polyspace-bug-finder-results-bug-finder”指的是Polyspace Bug Finder工具的结果展示。Polyspace Bug Finder是一种嵌入式软件静态分析测试工具,主要用于在Matlab环境下,帮助开发者检测代码中潜在的错误和...
- `MichaelMure-git-bug-8d7a2c0`可能是指一个特定版本的源码压缩包,包含了`git-bug`项目的源代码,用户可以通过编译和安装来使用这个工具。 - `git-bug`可以与常见的开发环境和IDE集成,例如通过配置Git钩子或...
Python库“bugbug-0.0.350-py3-none-any.whl”是一个用于Python开发的软件包,特别适合后端应用。这个压缩包是Python生态系统中的一个wheel文件,它是一种预编译的Python分发包格式,旨在简化安装过程,提高效率。在...
6. **版本控制**:Python库通常会使用版本控制系统(如Git)进行源代码管理,每次更新都会对应一个版本号,遵循 Semantic Versioning (语义化版本) 规范。 7. **发布与分发**:发布Python库通常通过PyPI(Python ...
Swift-Buglife 是一款专为iOS开发者设计的强大bug报告SDK和服务平台,它旨在简化移动应用的错误检测和修复过程。通过集成Buglife SDK到您的应用程序,您可以轻松地收集、管理和解决用户遇到的问题,从而提高应用的...
"Bug-Free Bug管理系统"是一款基于...综上,"Bug-Free Bug管理系统"是一个实用且灵活的工具,能够有效地提升软件开发的质量和效率。通过合理的使用和适当的定制,它不仅可以帮助管理bug,还能成为项目管理的有效助手。
【压缩包子文件的文件名称列表】"buster-amd-static-bug-源码.zip" 表明压缩包内的主要文件可能是"buster-amd-static-bug-源码",这可能是一个项目或者库的源代码目录,其中可能包含以下结构: 1. **src** - 存放...
总结,cat2bug-jlog是Java开发领域的一个强大工具,它通过实时收集、智能分类和详尽统计等功能,提升了企业应用的运维效率。了解并掌握cat2bug-jlog的使用,无疑能帮助开发者更好地应对复杂的应用场景,实现高效的...
Python库是开发者在编程...理解和使用这样一个库,不仅需要对Python语言有深入的理解,还需要熟悉Python的包管理和模块导入机制,以及相关的调试技巧。在实际应用中,合理利用这样的库能够显著提升开发效率和代码质量。
Python库“bugbug-0.0.444.tar.gz”是一个用于开发的软件包,主要面向使用Python作为后端编程语言的开发者。这个压缩包包含版本号为0.0.444的bugbug库,它很可能是一个用于调试、错误检测或者问题追踪的工具。在...
【标题】"designer-bug-20120525" 指的是一个特定版本的设计师工具(Designer)在2012年5月25日时的修复更新,主要关注的是修复其中的一些错误或问题。在这个版本中,开发团队针对用户反馈和系统监控到的异常进行了...
"bugbug-0.0.146-py3-none-any.whl" 是一个从PyPI官网下载的特定版本的Python库,这个文件是用于方便快速安装的预编译的轮子(wheel)格式。 **轮子(Wheel)格式** 轮子是Python的二进制分发格式,旨在提高Python...
winBGIm(Windows-based Graphics and Input for Beginners)是基于Windows的一个图形用户界面库,它不仅包含了"graphics.h"的大部分功能,而且还解决了旧库的一些问题,因此被称为“bug-free”。winBGIm支持彩色...
本文将深入探讨PyPI官网下载的资源——"bugbug-0.0.355-py3-none-any.whl",这是一个Python库,对于理解和使用Python编程具有重要意义。 首先,让我们了解什么是.whl文件。在Python中,whl(wheel)是一种预编译的...
Bugu-Mongo是基于MongoDB开发的一个框架,版本1.12提供了一系列优化和增强,旨在提升开发效率和数据库性能。本文将深入探讨Bugu-Mongo 1.12的关键特性、使用场景以及最佳实践。 一、Bugu-Mongo概述 Bugu-Mongo是一...
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:bugbug-0.0.57-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
总的来说,"ext-bug-fix-guig"代表了一个专业的IT实践过程,展示了开发者如何通过对源代码的仔细审查和改进来提升软件质量。这个过程对于维护Linux系统的健康运行至关重要,也体现了开源社区协作修复问题的精神。...
"Lara-Bug"是针对Laravel框架的一个错误通知服务,它提供了方便的方式来管理和追踪应用程序中的异常。在本篇文章中,我们将深入探讨Lara-Bug在Laravel开发中的作用、安装与配置,以及如何利用它来提升你的开发流程。...