From patchwork Sat Apr 18 04:19:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 19037 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2BAA9449E81 for ; Sat, 18 Apr 2020 07:19:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DDBA268BEB7; Sat, 18 Apr 2020 07:19:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A12A68B8C9 for ; Sat, 18 Apr 2020 07:19:42 +0300 (EEST) Received: by mail-pf1-f195.google.com with SMTP id b8so2058704pfp.8 for ; Fri, 17 Apr 2020 21:19:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Lzj/JH3ztnzR7wgui4dwblJsXqBtLUl2EBIb0Clu2Z4=; b=RF29hjV1GBoi4QaYNEgpto0yKlck0tdN9A++GIeTosQ2OhFgyqzqkJcMJLKycKjU/G YPFmJEyIZynX0nVQ+uIjVovkIFmhSf9YW4Bg4YQxPXJ4rnW203tQJJEXTnUc4hfhbVX+ NCib7ufyfya79k5P1PTHl4GvDCJBXgO4MfgRj9954wjurhp+ycBeSbWX9D2f9qvlX7+k PUv+gwovcCqc/nFkM7JxvZmR0mLbabnpB0PTWhm79ekNqMQYnRXXJuvJDboMFOBzJVfv QCnfBbHfPduddvhm9AupTvMPSgxSqCOcz3WgKdWtHxKHiOWJ70GY+xAg5R4YbA+/DmtX w6jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Lzj/JH3ztnzR7wgui4dwblJsXqBtLUl2EBIb0Clu2Z4=; b=ZbL6WU8TIeTQkXWcc7+ukKDusrnD7kbFMP6S5xRY5bmI3TuWhx7Y7W5zgzZfV5i2Ht yRA80bGFX1+Cr8t0ONKYjL8SNenjGZTtVq62MC58RlArQVhd3uPZEV+nnoxEodzsVZzO GflAZd+G5iArKoa/7GxO48EFq3ShE/CsXFSbGsC049erwiKIRrfaVZhDI+QdSi6BqkHQ vuKYwOhoT/0vlXdkn/0P82c4lEsgB3kOTnONfMr8d2/pEdpFRQDal4sQDMEbW7nhZQ3D OEZntdu5//wBr3dTBTg2geBMtftrYIDYDhyrYeGZWvDfuP6BDJO2yM1+ttPDbC9buy8y 3bdA== X-Gm-Message-State: AGi0PuZpElNzfFHSEVzFC5p7Iu018FhvUgR3twoj82gFc4EhO1olYN08 FLVOze4/kqiNsRcAulOh4wDYBwNf X-Google-Smtp-Source: APiQypLmsLkH0hNYrfkxH25gGnKvP1cCqpERzIIzfvk/YyTu463mxEsku1WgLFwSrYXu+Kv7kN6E9Q== X-Received: by 2002:aa7:91c9:: with SMTP id z9mr6787575pfa.17.1587183579940; Fri, 17 Apr 2020 21:19:39 -0700 (PDT) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id t12sm15350401pgm.37.2020.04.17.21.19.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Apr 2020 21:19:39 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Apr 2020 12:19:30 +0800 Message-Id: <20200418041931.7534-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 Subject: [FFmpeg-devel] [PATCH v1 1/2] avformat/ftp: Fix for invalid use of av_strtok X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang By the av_strtok() description: * On the first call to av_strtok(), s should point to the string to * parse, and the value of saveptr is ignored. In subsequent calls, s * should be NULL, and saveptr should be unchanged since the previous * call. Signed-off-by: Limin Wang --- libavformat/ftp.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libavformat/ftp.c b/libavformat/ftp.c index e3d194d..caeea42 100644 --- a/libavformat/ftp.c +++ b/libavformat/ftp.c @@ -333,15 +333,15 @@ static int ftp_passive_mode(FTPContext *s) *end = '\0'; /* skip ip */ if (!av_strtok(start, ",", &end)) goto fail; - if (!av_strtok(end, ",", &end)) goto fail; - if (!av_strtok(end, ",", &end)) goto fail; - if (!av_strtok(end, ",", &end)) goto fail; + if (!av_strtok(NULL, ",", &end)) goto fail; + if (!av_strtok(NULL, ",", &end)) goto fail; + if (!av_strtok(NULL, ",", &end)) goto fail; /* parse port number */ - start = av_strtok(end, ",", &end); + start = av_strtok(NULL, ",", &end); if (!start) goto fail; s->server_data_port = atoi(start) * 256; - start = av_strtok(end, ",", &end); + start = av_strtok(NULL, ",", &end); if (!start) goto fail; s->server_data_port += atoi(start); ff_dlog(s, "Server data port: %d\n", s->server_data_port); @@ -963,8 +963,10 @@ static int ftp_parse_entry_nlst(char *line, AVIODirEntry *next) static int ftp_parse_entry_mlsd(char *mlsd, AVIODirEntry *next) { char *fact, *value; + char *saveptr = NULL, *p = mlsd; ff_dlog(NULL, "%s\n", mlsd); - while(fact = av_strtok(mlsd, ";", &mlsd)) { + while(fact = av_strtok(p, ";", &saveptr)) { + p = NULL; if (fact[0] == ' ') { next->name = av_strdup(&fact[1]); continue;