LCOV - code coverage report
Current view: top level - source3/lib - fstring.c (source / functions) Hit Total Coverage
Test: coverage report for abartlet/fix-coverage dd10fb34 Lines: 12 13 92.3 %
Date: 2021-09-23 10:06:22 Functions: 4 4 100.0 %

          Line data    Source code
       1             : /*
       2             :    Unix SMB/CIFS implementation.
       3             : 
       4             :    fixed string functions
       5             : 
       6             :    Copyright (C) Igor Vergeichik <iverg@mail.ru> 2001
       7             :    Copyright (C) Andrew Tridgell 2001
       8             :    Copyright (C) Simo Sorce 2001
       9             :    Copyright (C) Martin Pool 2003
      10             : 
      11             :    This program is free software; you can redistribute it and/or modify
      12             :    it under the terms of the GNU General Public License as published by
      13             :    the Free Software Foundation; either version 3 of the License, or
      14             :    (at your option) any later version.
      15             : 
      16             :    This program is distributed in the hope that it will be useful,
      17             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      18             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19             :    GNU General Public License for more details.
      20             : 
      21             :    You should have received a copy of the GNU General Public License
      22             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.
      23             : 
      24             : */
      25             : 
      26             : #include "includes.h"
      27             : 
      28        8262 : size_t push_ascii_fstring(void *dest, const char *src)
      29             : {
      30        8262 :         return push_ascii(dest, src, sizeof(fstring), STR_TERMINATE);
      31             : }
      32             : 
      33             : /********************************************************************
      34             :  Push an nstring (a netbios string)
      35             :  this function uses convert_string_error() to avoid common debug
      36             :  warnings where is unable to convert strings to CH_DOS. The target
      37             :  string is truncated at the first character that cannot be converted
      38             :  The target is always null terminated.
      39             : ********************************************************************/
      40             : 
      41       74859 : size_t push_ascii_nstring(void *dest, const char *src)
      42             : {
      43       74859 :         size_t converted_size = 0;
      44       74859 :         bool ret = convert_string_error(CH_UNIX, CH_DOS, src, -1, dest, sizeof(nstring), &converted_size);
      45       74859 :         if (ret) {
      46       74859 :                 SCVAL(dest, sizeof(nstring)-1, 0);
      47             :         } else {
      48           0 :                 SCVAL(dest, 0, 0);
      49             :         }
      50       74859 :         return ret ? converted_size : (size_t)-1;
      51             : }
      52             : 
      53        6650 : size_t pull_ascii_fstring(char *dest, const void *src)
      54             : {
      55        6650 :         return pull_ascii(dest, src, sizeof(fstring), -1, STR_TERMINATE);
      56             : }
      57             : 
      58             : /* When pulling an nstring it can expand into a larger size (dos cp -> utf8). Cope with this. */
      59             : 
      60       19696 : size_t pull_ascii_nstring(char *dest, size_t dest_len, const void *src)
      61             : {
      62       19696 :         return pull_ascii(dest, src, dest_len, sizeof(nstring), STR_TERMINATE);
      63             : }
      64             : 

Generated by: LCOV version 1.13