Originally posted by [b]Ai4rei[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=3952
/src/common/plugins.c:
CODE
static int plugin_iscompatible(char* version)
{
int req_major = 0;
int req_minor = 0;
int major = 0;
int minor = 0;
if( version == NULL )
return 0;
sscanf(version, "%d.%d", &req_major, &req_minor);
sscanf(version, "%d.%d", &major, &minor);
return ( req_major == major || req_minor <= minor );
}
The code checks plugin's version against itself, instead against the version of the plugin system.
/src/common/plugin.h:
CODE
// Compatible plugins have:
// - equal major version
// - lower or equal minor version
so the fix would be:
CODE
static int plugin_iscompatible(char* version)
{
int req_major = 0;
int req_minor = 0;
int major = 0;
int minor = 0;
if( version == NULL )
return 0;
sscanf(version, "%d.%d", &req_major, &req_minor);
- sscanf(version, "%d.%d", &major, &minor);
+ sscanf(PLUGIN_VERSION, "%d.%d", &major, &minor);
return ( req_major == major || req_minor <= minor );
}