[rrd-developers] [PATCH] handle_request_fetch needs to convert to absolute path

Thorsten von Eicken tve at rightscale.com
Thu May 6 08:41:21 CEST 2010


I couldn't make the rrdcached FETCH command work with relative paths 
(over a socket) without the following patch. Dunno how it worked for 
anyone else...
Regards,
     Thorsten

--- rrd_daemon.c.orig   2010-04-30 16:13:40.000000000 +0000
+++ rrd_daemon.c        2010-05-06 06:37:32.000000000 +0000
@@ -1476,7 +1476,7 @@

  static int handle_request_fetch (HANDLER_PROTO) /* {{{ */
  {
-  char *file;
+  char *file, file_tmp[PATH_MAX];
    char *cf;

    char *start_str;
@@ -1530,10 +1530,14 @@
    if (status != 0)
      return (syntax_error(sock,cmd));

+  get_abs_path(&file, file_tmp);
+  if (!check_file_access(file, sock)) return 0;
+
    status = flush_file (file);
-  if ((status != 0) && (status != ENOENT))
+  if ((status != 0) && (status != ENOENT)) {
      return (send_response (sock, RESP_ERR,
            "flush_file (%s) failed with status %i.\n", file, status));
+  }

    t = time (NULL); /* "now" */




More information about the rrd-developers mailing list