[prev in list] [next in list] [prev in thread] [next in thread]
List: pecl-cvs
Subject: [PECL-CVS] com =?UTF-8?Q?pecl/search=5Fengine/solr=3A=20Fix=20Bug=20=23=36=38=33=30?= =?UTF-8?Q?=37=
From: omars () php ! net
Date: 2014-10-26 1:37:19
Message-ID: php-mail-64b5e0061c159df2e49cdff7ab10bd351520724809 () git ! php ! net
[Download RAW message or body]
Commit: 60cff757b66c686c287ee05bb5891ee0b6708e60
Author: Omar Shaban <omars@php.net> Sun, 26 Oct 2014 03:37:19 +0200
Parents: d22be8615f64956cc9bb0e96310ea09033e9c759
Branches: dismax
Link: http://git.php.net/?p=pecl/search_engine/solr.git;a=commitdiff;h=60cff757b66c686c287ee05bb5891ee0b6708e60
Log:
Fix Bug #68307 Solr Parameter Operator Override Issues in arg list type
Fixed in the scope of DisMaxQuery::addPhraseField()
Bugs:
https://bugs.php.net/68307
Changed paths:
M php_solr_dismax_query.c
Diff:
diff --git a/php_solr_dismax_query.c b/php_solr_dismax_query.c
index c711405..41e3f2e 100644
--- a/php_solr_dismax_query.c
+++ b/php_solr_dismax_query.c
@@ -195,6 +195,7 @@ PHP_METHOD(SolrDisMaxQuery, addPhraseField)
char * separator = "^";
solr_char_t * delimiter_override = "";
solr_char_t *boost_slop_chr = NULL;
+ solr_string_t boost_slop_buffer;
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|z", &field_name, \
&field_name_len, &boost, &slop) == FAILURE) {
@@ -208,37 +209,33 @@ PHP_METHOD(SolrDisMaxQuery, addPhraseField)
boost_str = Z_STRVAL_P(boost);
}
- if(slop != NULL){
+ if (slop != NULL) {
convert_to_string(slop);
slop_str = Z_STRVAL_P(slop);
}
- if(slop != NULL && boost !=NULL)
+ if (slop != NULL && boost !=NULL)
{
- boost_slop_chr = emalloc(sizeof(slop_str)+sizeof(boost_str)-2);
- memset(boost_slop_chr,0, sizeof(slop_str)+sizeof(boost_str)-2);
delimiter_override = "~";
- if(sprintf((char *)boost_slop_chr,"%s^%s", slop_str, boost_str) == FAILURE)
- {
- efree(boost_slop_chr);
- RETURN_NULL();
- return;
- }
+ memset(&boost_slop_buffer, 0, sizeof(solr_string_t));
+ solr_string_appends(&boost_slop_buffer, (solr_char_t *)slop_str , \
Z_STRLEN_P(slop)); + solr_string_appendc(&boost_slop_buffer, '^');
+ solr_string_appends(&boost_slop_buffer, boost_str , Z_STRLEN_P(boost));
add_result = solr_add_arg_list_param_ex(
- getThis(),pname, pname_len, field_name, field_name_len,
- boost_slop_chr, sizeof(boost_slop_chr)-1,' ',*separator, \
*delimiter_override + getThis(), pname, pname_len, field_name, \
field_name_len, + boost_slop_buffer.str, boost_slop_buffer.len,' \
',*separator, *delimiter_override TSRMLS_CC
);
- efree(boost_slop_chr);
- }else{
+
+ solr_string_free(&boost_slop_buffer);
+ } else {
add_result = solr_add_arg_list_param(
- getThis(),pname, pname_len, field_name, field_name_len,
+ getThis(), pname, pname_len, field_name, field_name_len,
boost_str, Z_STRLEN_P(boost),' ',*separator
TSRMLS_CC
);
}
-
-
+//
if(add_result == FAILURE)
{
RETURN_NULL();
--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic