projects
/
metaproxy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix ref to freed memory in log filter 1line - MP-556
[metaproxy-moved-to-github.git]
/
src
/
filter_http_file.cpp
diff --git
a/src/filter_http_file.cpp
b/src/filter_http_file.cpp
index
1038eab
..
18bdd57
100644
(file)
--- a/
src/filter_http_file.cpp
+++ b/
src/filter_http_file.cpp
@@
-1,5
+1,5
@@
/* This file is part of Metaproxy.
/* This file is part of Metaproxy.
- Copyright (C) 2005-2013 Index Data
+ Copyright (C) Index Data
Metaproxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Metaproxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
@@
-138,6
+138,13
@@
void yf::HttpFile::Rep::fetch_file(mp::Session &session,
{
mp::odr o(ODR_ENCODE);
{
mp::odr o(ODR_ENCODE);
+ if (strcmp(req->method, "GET"))
+ {
+ Z_GDU *gdu = o.create_HTTP_Response(session, req, 405);
+ package.response() = gdu;
+ return;
+ }
+
FILE *f = fopen(fname.c_str(), "rb");
if (!f)
{
FILE *f = fopen(fname.c_str(), "rb");
if (!f)
{
@@
-175,16
+182,14
@@
void yf::HttpFile::Rep::fetch_file(mp::Session &session,
fclose(f);
Z_GDU *gdu = 0;
fclose(f);
Z_GDU *gdu = 0;
+ mp::odr decode(ODR_DECODE);
if (raw)
{
if (raw)
{
- odr_setbuf(o, (char *) fbuf, sz, 0);
- int r = z_GDU(o, &gdu, 0, 0);
+ odr_setbuf(decode, (char *) fbuf, sz, 0);
+ int r = z_GDU(decode, &gdu, 0, 0);
if (!r)
{
if (!r)
{
- Z_GDU *gdu = o.create_HTTP_Response(session, req, 500);
- package.response() = gdu;
- fclose(f);
- return;
+ gdu = o.create_HTTP_Response(session, req, 500);
}
}
else
}
}
else