Skip to content

Commit 5f0295b

Browse files
author
Ubuntu
committed
Merge branch 'master' of https://github.com/mapserver/tinyows
2 parents 6fea4fe + e4c19e5 commit 5f0295b

File tree

4 files changed

+47
-38
lines changed

4 files changed

+47
-38
lines changed

src/mapfile/mapfile.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1672,8 +1672,10 @@ static void end_layer()
16721672
* down here because we want the user's section 1 to have been scanned first.
16731673
* The user has a chance to override it with an option.
16741674
*/
1675+
#ifndef _WIN32
16751676
#include <unistd.h>
16761677
#endif
1678+
#endif
16771679

16781680
#ifndef YY_EXTRA_TYPE
16791681
#define YY_EXTRA_TYPE void *

src/ows/ows_geobbox.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ ows_geobbox *ows_geobbox_copy(ows_geobbox *g)
5858
ows_geobbox *c;
5959

6060
assert(g);
61-
c = malloc(sizeof(g));
62-
return memcpy(c, g, sizeof(g));
61+
c = malloc(sizeof(*g));
62+
return memcpy(c, g, sizeof(*g));
6363
}
6464

6565

src/struct/buffer.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,11 @@ buffer *buffer_ftoa(double f)
141141

142142
res = buffer_init();
143143
while (res->size < 100) buffer_realloc(res);
144+
#ifndef _WIN32
144145
snprintf(res->buf, 99, "%f", f);
146+
#else
147+
_snprintf(res->buf, 99, "%f", f);
148+
#endif
145149
res->use = strlen(res->buf);
146150

147151
return res;

src/wfs/wfs_transaction.c

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ static buffer *wfs_insert_xml(ows * o, wfs_request * wr, xmlDocPtr xmldoc, xmlNo
505505
node = n->children;
506506

507507
/* Jump to the next element if spaces */
508-
while (node->type != XML_ELEMENT_NODE) node = node->next;
508+
while (node != NULL && node->type != XML_ELEMENT_NODE) node = node->next;
509509

510510
/* Fill SQL fields and values at once */
511511
for ( /* empty */ ; node; node = node->next) {
@@ -541,45 +541,48 @@ static buffer *wfs_insert_xml(ows * o, wfs_request * wr, xmlDocPtr xmldoc, xmlNo
541541
elemt = node->children;
542542

543543
/* Jump to the next element if spaces */
544-
while (elemt->type != XML_ELEMENT_NODE) elemt = elemt->next;
545-
546-
if (!strcmp((char *) elemt->name, "Box") ||
547-
!strcmp((char *) elemt->name, "Envelope")) {
548-
549-
fe = filter_encoding_init();
550-
fe->sql = fe_envelope(o, layer_name, fe, fe->sql, elemt);
551-
if (fe->error_code != FE_NO_ERROR) {
552-
result = fill_fe_error(o, fe);
553-
buffer_free(sql);
554-
buffer_free(values);
555-
buffer_free(column);
556-
buffer_free(id);
544+
while (elemt != NULL && elemt->type != XML_ELEMENT_NODE) elemt = elemt->next;
545+
if (elemt != NULL) {
546+
if (!strcmp((char *) elemt->name, "Box") ||
547+
!strcmp((char *) elemt->name, "Envelope")) {
548+
549+
fe = filter_encoding_init();
550+
fe->sql = fe_envelope(o, layer_name, fe, fe->sql, elemt);
551+
if (fe->error_code != FE_NO_ERROR) {
552+
result = fill_fe_error(o, fe);
553+
buffer_free(sql);
554+
buffer_free(values);
555+
buffer_free(column);
556+
buffer_free(id);
557+
filter_encoding_free(fe);
558+
return result;
559+
}
560+
buffer_copy(values, fe->sql);
557561
filter_encoding_free(fe);
558-
return result;
559-
}
560-
buffer_copy(values, fe->sql);
561-
filter_encoding_free(fe);
562-
563-
} else if (!strcmp((char *) elemt->name, "Null")) {
564-
buffer_add_str(values, "''");
565-
} else {
566-
gml = ows_psql_gml_to_sql(o, elemt, srid_root);
567-
if (gml) {
568-
buffer_add_str(values, "'");
569-
buffer_copy(values, gml);
570-
buffer_add_str(values, "'");
571-
buffer_free(gml);
562+
563+
} else if (!strcmp((char *) elemt->name, "Null")) {
564+
buffer_add_str(values, "''");
572565
} else {
573-
buffer_free(sql);
574-
buffer_free(values);
575-
buffer_free(column);
576-
buffer_free(id);
577-
buffer_free(layer_name);
578-
579-
result = buffer_from_str("Error invalid Geometry");
580-
return result;
566+
gml = ows_psql_gml_to_sql(o, elemt, srid_root);
567+
if (gml) {
568+
buffer_add_str(values, "'");
569+
buffer_copy(values, gml);
570+
buffer_add_str(values, "'");
571+
buffer_free(gml);
572+
} else {
573+
buffer_free(sql);
574+
buffer_free(values);
575+
buffer_free(column);
576+
buffer_free(id);
577+
buffer_free(layer_name);
578+
579+
result = buffer_from_str("Error invalid Geometry");
580+
return result;
581+
}
581582
}
582583
}
584+
else
585+
buffer_add_str(values, "NULL");
583586

584587
} else values = wfs_retrieve_value(o, wr, values, xmldoc, node);
585588

0 commit comments

Comments
 (0)