*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * (C) Copyright 2014 Intel Corporation.
+ * Copyright (c) 2014, Intel Corporation.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public License
#include <unistd.h>
#endif
-#include <liblustre.h>
+#include <libcfs/util/string.h>
#include <lustre/lustreapi.h>
/** Quick-n'-dirty JSON string escape routine.
* http://json.org/
* http://www.ietf.org/rfc/rfc4627.txt (section 2.5)
*/
-int llapi_json_escape_string(char **out_string, char *in_string)
+static int json_escape_string(char **out_string, char *in_string)
{
int i;
char escape_chars[] = {'\b', '\f', '\n', '\r', '\t', '"', '\\',
fprintf(fp, "%d", item->lji_integer);
break;
case LLAPI_JSON_BIGNUM:
- fprintf(fp, LPU64, item->lji_u64);
+ fprintf(fp, "%llu", (unsigned long long)item->lji_u64);
break;
case LLAPI_JSON_REAL:
fprintf(fp, "%f", item->lji_real);
break;
case LLAPI_JSON_STRING:
- if (llapi_json_escape_string(&escaped_string,
- item->lji_string) < 0) {
+ if (json_escape_string(&escaped_string,
+ item->lji_string) < 0) {
if (escaped_string != NULL)
free(escaped_string);
return -errno;
{
struct llapi_json_item_list *list;
struct llapi_json_item *new_item;
+ size_t len;
if (json_items == NULL || *json_items == NULL)
return -EINVAL;
if (new_item == NULL)
return -ENOMEM;
- new_item->lji_key = calloc(1, strlen(key) + 1);
+ len = strlen(key) + 1;
+ new_item->lji_key = calloc(len, sizeof(char));
if (new_item->lji_key == NULL)
return -ENOMEM;
- strncpy(new_item->lji_key, key, strlen(key));
+ snprintf(new_item->lji_key, len, "%s", key);
new_item->lji_type = type;
new_item->lji_next = NULL;
new_item->lji_real = *(double *)val;
break;
case LLAPI_JSON_STRING:
- new_item->lji_string = calloc(1, strlen((char *)val) + 1);
+ len = strlen((char *)val) + 1;
+ new_item->lji_string = calloc(len, sizeof(char));
if (new_item->lji_string == NULL)
return -ENOMEM;
- strncpy(new_item->lji_string,
- (char *)val, strlen((char *)val));
+ snprintf(new_item->lji_string, len, "%s", (char *)val);
break;
default:
llapi_err_noerrno(LLAPI_MSG_ERROR, "Unknown JSON type: %d",