libsmb: Fix CID 1034605 Incorrect pointer comparison
[sfrench/samba-autobuild/.git] / source3 / libsmb / clistr.c
index 5d20d632aad002b4d15a7fdcd1d9788f27896787..f1264f65ce521fa2275ca4c3dbac9ad6688dbc83 100644 (file)
 */
 
 #include "includes.h"
-
-size_t clistr_push_fn(const char *function,
-                       unsigned int line,
-                       struct cli_state *cli,
-                       void *dest,
-                       const char *src,
-                       int dest_len,
-                       int flags)
-{
-       size_t buf_used = PTR_DIFF(dest, cli->outbuf);
-       if (dest_len == -1) {
-               if (((ptrdiff_t)dest < (ptrdiff_t)cli->outbuf) || (buf_used > cli->bufsize)) {
-                       DEBUG(0, ("Pushing string of 'unlimited' length into non-SMB buffer!\n"));
-                       return push_string_fn(function, line,
-                                             cli->outbuf,
-                                             SVAL(cli->outbuf, smb_flg2),
-                                             dest, src, -1, flags);
-               }
-               return push_string_fn(function, line, cli->outbuf,
-                                     SVAL(cli->outbuf, smb_flg2),
-                                     dest, src, cli->bufsize - buf_used,
-                                     flags);
-       }
-
-       /* 'normal' push into size-specified buffer */
-       return push_string_fn(function, line, cli->outbuf,
-                             SVAL(cli->outbuf, smb_flg2),
-                             dest, src, dest_len, flags);
-}
-
-size_t clistr_pull_fn(const char *function,
-                       unsigned int line,
-                       struct cli_state *cli,
-                       char *dest,
-                       const void *src,
-                       int dest_len,
-                       int src_len,
-                       int flags)
-{
-       return pull_string_fn(function, line, cli->inbuf,
-                             SVAL(cli->inbuf, smb_flg2), dest, src, dest_len,
-                             src_len, flags);
-}
-
-size_t clistr_pull_talloc_fn(const char *function,
-                               unsigned int line,
-                               TALLOC_CTX *ctx,
-                               struct cli_state *cli,
-                               char **pp_dest,
-                               const void *src,
-                               int src_len,
-                               int flags)
-{
-       return pull_string_talloc_fn(function,
-                                       line,
-                                       ctx,
-                                       cli->inbuf,
-                                       SVAL(cli->inbuf, smb_flg2),
-                                       pp_dest,
-                                       src,
-                                       src_len,
-                                       flags);
-}
-
-size_t clistr_align_out(struct cli_state *cli, const void *p, int flags)
-{
-       return align_string(cli->outbuf, (const char *)p, flags);
-}
-
-size_t clistr_align_in(struct cli_state *cli, const void *p, int flags)
+#include "libsmb/libsmb.h"
+
+size_t clistr_pull_talloc(TALLOC_CTX *ctx,
+                         const char *base,
+                         uint16_t flags2,
+                         char **pp_dest,
+                         const void *src,
+                         int src_len,
+                         int flags)
 {
-       return align_string(cli->inbuf, (const char *)p, flags);
+       return pull_string_talloc(ctx,
+                                 base,
+                                 flags2,
+                                 pp_dest,
+                                 src,
+                                 src_len,
+                                 flags);
 }